关于switch中case的用法!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于switch中case的用法!相关的知识,希望对你有一定的参考价值。

书中原话“如果几个case语句使用同一组语句,可以将条件列在同一个case后面,用“,”号隔开。”
但是比如我用了case 1,2,3,4,5:
cout<<"内容"<<endl;
运行就报错!报错内容是 error C2051: case expression not constant
这个为什么呢但是分开用case1: case2:又是正确的!是不是用这个还要加个什么头文件什么的!
有图有真相!~

case 1,2,3,4,5:这样写肯定是不行的,要这样写
case 1:
case 2:
case 3:
case 4:
case 5:
处理语句;
break;追问

我知道,但是书上的确是那么写的 我一运行就报错,但是我觉得应该有这样的写法不然遇到那种同样输出结果的判断不是浪费代码?应该是语法什么的错了或者头文件吧!

追答

这样啊,那样的写法我也没见过,不知道你用的什么语言,如果是c,c#,java之类的我那个是正确的,你说的上述语言不支持

追问

是C++的书

追答

哦, c++我不懂哦,没能帮上你,不好意思哦

参考技术A 什么书?第几页?
说实话,我从没看到过这样的原话追问

自己看吧!

追答

请把书名告诉我,最好把作者也告诉我,去好去查

参考技术B 书上是错的,正确的是楼上的写法

关于switch语句,case和default的执行顺序,

先执行case,当所有的case都判断完不符合条件的时候,才会执行default,无论你的default放在哪,第一行,最后,或者中间位置。
default是缺省默认的意思,default在switch语句中不管放在哪都是从第一个case开始执行,当所有的case都不满足条件时,才执行default。
需要注意的是,default在最后一行时下面的break可以省略不写,但如果没有在最后一行default下面需要加上break,否则执行完default后会继续执行下面的代码直到遇到break跳出循环。
参考技术A 因为你default的后面没有break语句,所以他会接着执行下面的语句。一般在使用switch语句的时候在每隔case结束后都要加上break避免错误,default通常也都是放在所有case语句后。 参考技术B 为什么执行完default还要执行case2——因为该分支中没有break语句。

以上是关于关于switch中case的用法!的主要内容,如果未能解决你的问题,请参考以下文章

关于switch case语句的问题

关于是switch case 的细节问题

关于C语言switch语句问题

关于字符串replace方法第二个参数为函数的用法

switch case的用法

switch case的用法