C++中如何让一个case包含多种情况

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中如何让一个case包含多种情况相关的知识,希望对你有一定的参考价值。

上面的写法本身就有问题,要想用一个语句处理多种case可以这样写:switch(a)
case
1:
case
2:
case
3:
printf("我处理了a等于1,2,3的情况\n");
break;
case
4:
break;
default:
break;
而对于提问者的写法,机器是这样理解的:假设a=0,那么由于表达式
1<=a&&a<=3是一个bool表达式,所以当a=0时,该bool表达式是1<=a&&a<=3的值为“假”,在C语言中就是0,正好与a的只相同,所以程序会执行这个case语句后面的代码,很明显这与提问者的本意是矛盾的;因此要想用一个语句处理多个case只能按照刚才给出的事例代码那样写。
参考技术A 一个case里面再嵌套if语句就行了。case
1<=a&&a<=3:这是不行的。case后必须跟一个确切的数值,所以大多数情况下大家都是用几个if语句并列使用,case不是很有用。如果你想让a=1,2,3的时候达到同一个结果,可以case
1:case
2:case
3:……;break;这样就行了。
参考技术B case后面必须跟常数表达式,不能使用逻辑判断条件。不过你可以把多个case放在一起用,例如
case
1:
case
2:
case
3:
执行操作
break;本回答被提问者采纳

以上是关于C++中如何让一个case包含多种情况的主要内容,如果未能解决你的问题,请参考以下文章

C++ 一个包含多种类型模板类的 std::vector

如何构造一个包含多种数据类型值的字节数组?

C++读取包含多种变量的txt文件

如何让 C++ 预编译器做一个“循环”

如何检查字符串是否包含子字符串,而不是在Bash中

如何检查字符串是不是包含子字符串并且在 Bash 中不包含 [重复]