具有:
switch(val){
case 1:
break;
case 2:
break;
}
是否可以为case val > N:
添加const long long N = 100;
?
答案 0 :(得分:3)
是的,但不是转换的一部分,请执行此操作:
if ( val > N)
{
// whatever
} else {
switch(val){
case 1:
break;
case 2:
break;
}
}
case
只能是单个常量值。它是这样的原因是因为C的switch
语句应该可以作为跳转表来实现。更高级别的语言经常允许更复杂的比较,使其成为一系列if () {} else if () {}
语句的有效语法糖。
答案 1 :(得分:1)
不,C ++ switch
个案只处理单个值。
您可以使用default
语句添加if
个案例来检查范围。或者直接使用if
而不使用switch
。
答案 2 :(得分:1)
我可以建议:
switch(val){
case 1:
break;
case 2:
break;
case 3:
case 4: //etc
default:
//case > 100
}