每当我尝试使用
开关时case myvar:
myvar是一个char我得到一个错误。是否可以使它工作?感谢
答案 0 :(得分:9)
在case中使用的表达式必须是可在编译时计算的常量整型表达式。所以不行。除非myvar
是某种static const int
,否则您无法使用case
进行此操作。
但你可以做的只是使用链式if
语句。
答案 1 :(得分:3)
一般来说,没有。案例必须是编译时常量。
答案 2 :(得分:1)
您希望切换案例基于char工作。正如其他人所说,你的switch case应该是完整的编译时常量。以下示例有效,因为每个char的情况都会检索相应的ASCII值。
#include <iostream>
int main( void )
{
char myvar = 'a' ;
switch( myvar )
{
case 'a':
std::cout << "\n This Works !" << std::endl ;
break ;
default:
break ;
}
return 0 ;
}
希望这有帮助!