例如,我们可能有一个if语句,想要检查一个变量是否等于4个不同的值,可能类似
if(x == 1,2,3,4){ do something }
在C中执行此操作的正确语法是什么?我知道逗号可以用其他语言编写,我似乎无法想象如何不检查几个不同。我能想到的另一件事就是不得不做
if((x == 1)||(x ==2)
但毫无疑问我会超过4,这会很快烦人。我没有看到这样的任何其他问题,如果你知道的话,请指点我。
答案 0 :(得分:5)
如果值是常数,我会用开关来做:
switch(x)
{
case 1:
case 2:
case 3:
case 4:
//do something
break;
}
如果数字是连续的,您可以使用if (x >= 1 && x <= 4)
答案 1 :(得分:2)
首先,缩写,as mentioned by mch in the other answer,
if ( (x >= 1 && x <= 4) || (x >= 10 && x <= 40) || ....) //whatever condition
否则,(不是单行比较)如果您使用gcc扩展名就可以了,就会有一个名为case-range的功能。
在那里,您可以指定值的范围。像
这样的东西 case 1 ... 5:
有效。
最后,一个落后的switch
案例也可能会派上用场,比如
switch(val)
{
case 1:
case 2:
case 3:
case 4:
case 5:
break;
case 6:
case 7:
break;
default:
break;
}