可能重复:
C++将一堆值与给定值进行比较
我需要在C++中检查for循环中的相等性,但是循环需要适用于x等于多种可能性.
例如,现在我有类似的东西:
if(x==a || x==b || x==c || x==d || x==e || x==f || x==g || x==h)
{
//loop body
}
Run Code Online (Sandbox Code Playgroud)
但是随着我的数量,它看起来很乱,我想知道是否有一种简写方式说"if(x ==(其中任何一个))"或者如果将它们全部写出来是唯一的选择.
谢谢!
下面的代码片段没有给出编译错误,但它也没有给出预期的输出,虽然这可以用简单的if-else方式完成,但我想用宏来做.这c
是一个字符变量.
#define VOWELS 'a' || 'e' || 'i' || 'o' || 'u' || 'A' || 'E' || 'I' || 'O' || '
if (c == VOWELS) {
printf("vowel = %c\n", c);
}
Run Code Online (Sandbox Code Playgroud) 好的,所以我正在做一些涉及键盘输入的东西.我现在有一个像这样的巨大功能:
return key == BB_KEY_SPACE ||
key == BB_KEY_ZERO ||
key == BB_KEY_ONE ||
key == BB_KEY_TWO ||
key == BB_KEY_THREE ||
key == BB_KEY_FOUR ||
key == BB_KEY_FIVE ||
key == BB_KEY_SIX ||
key == BB_KEY_SEVEN ||
key == BB_KEY_EIGHT ||
key == BB_KEY_NINE ||
key == BB_KEY_A ||
key == BB_KEY_B ||
key == BB_KEY_C ||
key == BB_KEY_D ||
key == BB_KEY_E ||
key == BB_KEY_F ||
key == BB_KEY_G ||
key == BB_KEY_H ||
key == …
Run Code Online (Sandbox Code Playgroud) 如何将变量与if
语句中相同类型的值列表进行比较并使其可读且干净?
例如,我有以下内容,但有很多值,我想让它更具可读性.
if ((lst->type == 'p' || lst->type == 'x' || lst->type == 'X' ||
lst->type == 'o' || lst->type == 'O' || (lst->type == 'd' ||
lst->type == 'i' || lst->type == 'D'))
Run Code Online (Sandbox Code Playgroud)