c语言中switch怎么可以用字符串作条件表达式?

发布网友 发布时间: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 后面可以不是一个变量。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com