switch语句中的表达式不能是字符串吗? C++ [重复]
Posted
技术标签:
【中文标题】switch语句中的表达式不能是字符串吗? C++ [重复]【英文标题】:Can't expression in switch statement be string? C++ [duplicate] 【发布时间】:2021-02-01 15:34:45 【问题描述】:以下代码返回错误:开关量不是整数。怎么了?
string s = "20";
switch (s)
case "18":
cout << "18" << "\n";
break;
case "20":
cout << "20" << "\n";
break;
【问题讨论】:
不,不能,因为您的案例是数字,为什么不使用数字? 【参考方案1】: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
的重载。
【讨论】:
以上是关于switch语句中的表达式不能是字符串吗? C++ [重复]的主要内容,如果未能解决你的问题,请参考以下文章