• Switch case 使用及嵌套语法


    目录

    switch case 语句讲解

    Switch 也可以嵌套


    switch case 语句讲解

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

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

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


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

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

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

    它的执行过程是:
    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 常量包含共同的值,也没有矛盾。

    示例 :

    例子 : 

    1. #include h>
    2. int main ()
    3. {
    4. /* 局部变量定义 */
    5. int a = 100;
    6. int b = 200;
    7. switch(a) {
    8. case 100:
    9. printf("这是外部 switch 的一部分\n");
    10. switch(b) {
    11. case 200:
    12. printf("这是内部 switch 的一部分\n");
    13. }
    14. }
    15. printf("a 的准确值是 %d\n", a );
    16. printf("b 的准确值是 %d\n", b );
    17. return 0;
    18. }

    前端 Vue 项目内所用 :

    1. switch (item.type) {
    2. case 'RADIO':
    3. // 单选题
    4. break;
    5. case 'CHECKBOX':
    6. // 多选题
    7. break;
    8. case 'FILLBLANK':
    9. // 填空题
    10. switch (item.quInputType) {
    11. case '1':
    12. // 文本框
    13. break;
    14. case '2':
    15. // 日期框
    16. break;
    17. case '3':
    18. // 数字框
    19. break;
    20. }
    21. break;
    22. default:
    23. break;
    24. }
  • 相关阅读:
    Seata分布式事务
    luffy-(12)
    计算机视觉系列-轻松掌握 MMDetection 中常用算法 :Cascade R-CNN(二)
    修过书上的建网站用的CMS程序源码,增加在文章中插入图片功能
    Jenkins nginx自动化构建前端vue项目
    【常见索引使用】⭐️Mysql中索引的类型以及使用方式和失效场景
    Au 入门系列之二:录音
    postgresql分页查询
    Linux系统中毒,应急方法
    ArcGIS Maps SDK for JS:关闭地图边框(v4.27)
  • 原文地址:https://blog.csdn.net/weixin_58099903/article/details/126002466