我只是不明白如何在switch语句中使用布尔运算符
switch (expression) {
case > 20:
statements
break;
case < -20:
statements
break;
}
修改:
我不想要一个If()语句。
答案 0 :(得分:10)
你做不到。使用if() ... else ...
。
你想要的最近的东西使用GCC扩展,因此是非标准的。您可以在case语句中定义范围,而不仅仅是值:
switch(foo)
{
case 0 ... 20: // matches when foo is inclusively comprised within 0 and 20
// do cool stuff
break;
}
但是,您无法使用它来匹配特定值下的任何。它必须在一个精确的范围内。 Switch
es只能用于将比较运算符替换为常量,并且不能用于除此之外的任何内容。
答案 1 :(得分:5)
switch ((expression) > 20) {
case true:
statements
break;
case false:
default:
statements
break;
}
在一个案例中你想要多于1个布尔值?你可以这样做
int ii = ((expression) > 20) + 2 * ((expression) < -20);
switch (ii) {
case 1:
statements
break;
case 2:
statements
break;
}
这,IMO是非常糟糕的代码,但这是你要求的......
只要使用if语句,从长远来看,你会更好。