switch case 学习

#牛客创作赏金赛#C++新手
先放个结构参考

switch(表达式){
    case 常量表达式1  :
       语句1;
       break; // 可选的
    case 常量表达式2  :
       语句2;
       break; // 可选的
  
    // 您可以有任意数量的 case 语句
    default : // 可选的
       语句x;
}

1.在某case语句后不加break,则无论下面语句的case条件为T or F,都会执行其语句,直到遇到break or }
2.在default的语句后也可以加break,但效果不变

再看个例子(判断成绩等级)
switch (score/10)
{
case 10:
case 9:cout << "A";
break;
case 8:
case 7:cout << "B";
break;
case 6:cout << "C";
break;
default:cout << "D";
}

3.case 后的 常量表达式 必须不同
4.case 后的 常量表达式 只能是 整形 、字符型、枚举型(这个还没学到

以上只是简单的一笔
下面是我对常量表达式的思考(搜索
当把case 6 改为case 5 && 6 时,程序不会报错,但又无法执行到此语句(表达式的值不可能为 5 && 6 )
程序不报错是否意味 5 && 6是int类型呢?
再次尝试将case 7改为case '7'也不报错,
我就对  “case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。”
这句搜索到的话有些疑问
判断一下5 && 6的类型,是闻所未闻的 Dbool 
网上也难以找到Dbool的相关信息

看来case并不会计算后面表达式的值,只是引用其本身
关于常量表达式网上可以轻易找到相关内容,这里就不多赘述

关于switch case就学到这里吧
结束!
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务