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就学到这里吧
结束!
全部评论

相关推荐

02-05 08:49
已编辑
武汉大学 Web前端
野猪不是猪🐗:36k和36k之间亦有差距,ms的36k和pdd的36k不是一个概念
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
02-12 10:05
小米集团 算法工程师 28.0k*15.0
泡沫灬一触即破:楼上那个看来是看人拿高薪,自己又不如意搁这泄愤呢是吧,看你过往评论很难不怀疑你的精神状态
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务