c语言中switch怎么可以用字符串作条件表达式?
答案:1 悬赏:70 手机版
解决时间 2021-02-05 05:43
- 提问者网友:嗝是迷路的屁
- 2021-02-04 23:18
c语言中switch怎么可以用字符串作条件表达式?
最佳答案
- 五星知识达人网友:轻熟杀无赦
- 2021-02-05 00:57
首先: 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 后面可以不是一个变量。
超级好奇地编译了一下:
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 后面可以不是一个变量。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯