#include <stdio.h>
int main()
{
int a=1;
switch(a)
{
case 3||4:printf("ok\n");break;
case 4:printf("perfect\n");break;
default:printf("no\n");break;
}
return 0;
}
所以结果为什么是OK呢
追答这是因为case 后面,只能是一个常数,刚好这里3||4是一个常数表达式,所以,编译就通过的。不过程序的理解可不是“如果它是3或4”而是逻辑表达式的值3||4为"真"(因为3和4都不是0,所以它的值为Ture || True =True,(即1),
更何况,退一万步说,如果它是可以用来检测是否为4,那么,下一个case 4又如何呢?
好的,谢谢