c++ - switch语句中的表达式不能是字符串吗?C++
问题描述
以下代码返回错误:开关量不是整数。怎么了?
string s = "20";
switch (s){
case "18":
cout << "18" << "\n";
break;
case "20":
cout << "20" << "\n";
break;
}
解决方案
case
s 必须是整数类型和编译时可评估的常量表达式。
与其对抗语言,不如使用if
else
块。或者,如果您可以使用整数类型,请这样做:
int n = 20;
switch (n){
case 18:
std::cout << n << "\n";
break;
case 20:
std::cout << n << "\n";
break;
}
注意到该ostream
<<
运算符对 . 有一个重载int
。
推荐阅读
- python - 如何发送散景服务器应用程序?
- silverlight - 将 XAP 文件复制到部署服务器上的 ClientBin 不起作用
- android - 如何将用户同意传递给 AdMob (GDPR)
- java - 如何验证注释仅用于某些类?
- java - 如何使用 java 获取 H2 数据库文件系统
- java - 如何从数据库中设置 Quartz Schedular 中的日期和时间
- php - 将生成的二维码发送到接收方电子邮件
- icons - 使用输入字段上显示的图标确定以下错误发生在什么设备上
- laravel - 电子邮件中的 Laravel 图像
- blockchain - 关于以太坊私有区块链