0


Switch case 使用及嵌套语法


switch case 语句讲解

代码中 虽然没有 限制 if else 能够处理的 分支 数量 ,但当分支过多时 ,

用 if else 处理会不太方便 ,而且容易出现 if else 配对出错的情况 。

所以 对于这种情况 ,实际开发中一般使用 switch 语句代替


switch 是另外一种选择结构的语句 , 用来代替简单的、

拥有多个分枝的 if else 语句 ,基本格式如下 :

switch(表达式){
    case 整型数值1: 语句 1;
    case 整型数值2: 语句 2;
    ......
    case 整型数值n: 语句 n;
    default: 语句 n+1;
}

它的执行过程是:

  1. 首先计算 “表达式” 的值 ,假设 为 m 。
  2. 从第一个 case 开始 ,比较 “整型数值1” 和 m ,如果它们相等 ,

就执行冒号 : 后面的所有语句 ,也就是从 “语句1” 一直执行到 “语句n+1” ,

而不管后面的 case 是否匹配成功 。
3) 如果 “整型数值1” 和 m 不相等 ,就跳过冒号后面的 “语句1” ,

继续比较第二个 case 、第三个 case ……

一旦发现和某个整型数值相等了 ,就会执行后面所有的语句 。

假设 m 和 “整型数值5” 相等 ,那么就会从 “语句5” 一直执行到 “语句n+1” 。
4) 如果直到最后一个 “整型数值n” 都没有找到相等的值,

那么就执行 default 后的 “语句 n+1” 。

需要重点强调的是,当和某个整型数值匹配成功后,

会执行该分支以及后面所有分支的语句。


这显然不是我们想要的结果 ,为了达到这个目标 ,

必须要在 每个分支 最后 添加

**break;** 

语句 。
break 是 C 语言中的一个 关键字 ,专门用于 跳出 switch 语句 。

所谓 “ 跳出 ” ,是指一旦遇到 break ,就不再执行 switch 中的任何语句 ,

包括当前分支中的语句和其他分支中的语句 ;

也就是说 ,整个 switch 执行结束了 ,接着会执行整个 switch 后面的代码 。


最后需要说明的两点是:

1、default 是最后一个分支,匹配后不会再执行其他分支,

所以也可以不添加

**break;**  

语句。

2、default 不是必须的 。

当没有 default 时,如果所有 case 都匹配失败,那么就什么都不执行。


Switch 也可以嵌套

把一个 switch 作为一个外部 switch 的语句序列的一部分,

即可以在一个 switch 语句内使用另一个 switch 语句。

即使 内部 和 外部 switch 的 case 常量包含共同的值,也没有矛盾。

示例 :

例子 :


#include <stdio.h>

int main ()
{
   /* 局部变量定义 */
   int a = 100;
   int b = 200;

   switch(a) {
      case 100: 
         printf("这是外部 switch 的一部分\n");
         switch(b) {
            case 200:
               printf("这是内部 switch 的一部分\n");
         }
   }
   printf("a 的准确值是 %d\n", a );
   printf("b 的准确值是 %d\n", b );

   return 0;
}

前端 Vue 项目内所用 :

switch (item.type) {
  case 'RADIO':
    // 单选题
    break;
  case 'CHECKBOX':
    // 多选题
    break;
  case 'FILLBLANK':
    // 填空题
    switch (item.quInputType) {
      case '1':
        // 文本框
        break;
      case '2':
        // 日期框
        break;
      case '3':
        // 数字框
        break;
    }
    break;
  default:
    break;
}
标签: 前端 Switch

本文转载自: https://blog.csdn.net/weixin_58099903/article/details/126002466
版权归原作者 雨季mo浅忆 所有, 如有侵权,请联系我们删除。

“Switch case 使用及嵌套语法”的评论:

还没有评论