发布网友 发布时间:2022-04-21 09:46
共1个回答
热心网友 时间:2022-07-14 19:46
首先: switch 语句及case 的类型 表达式必须是整数、字符或枚举量值。
超级好奇地编译了一下:
1>e:\project\stl_proc\stl_proc\stl_proc\stl_proc.cpp(86) : error C2052: “double”: 非法的 case 表达式类型
真是*了我的三观。。。。 switch('0.4') 竟然没报错。。 我把下面的修复了之后, 让我们看看程序怎么处理
改成:
switch('0.4')
{
case '0': a=0;break;
case'.': a=9;break;
default:a=7;
}printf("%d",a);
运行了一下, 都走到default 分支了 。
改成:
switch('0')
{
case '0': a=0;break;
case'.': a=9;break;
default:a=7;
}printf("%d",a);
全部走到 case 0 分支了。
结论: switch 后面可以不是一个变量。