hac*_*ing 6 c conditional-statements
我有一个使用块的代码片段if-else if-else。else if (cardLength == 16) && (numberArray[0] == 5 && (numberArray[1] == 1 || numberArray[1] == 2 || numberArray[1] == 3 || numberArray[1] == 4 || numberArray[1] == 5))例如,我想知道在不改变逻辑的情况下缩短冗长的条件语句的任何潜在方法。在Python中,我可以这样做if (cardLength == 16) and (numberArray[0:2] in range(51,56)):在 C 中是否有任何特定的语法糖可以用于此目的?
if (cardLength == 15) &&
(numberArray[0] == 3 && (numberArray[1] == 4 || numberArray[1] == 7))
{
printf("AMEX\n");
}
else if (cardLength == 16) &&
(numberArray[0] == 5 && (numberArray[1] == 1 || numberArray[1] == 2 || numberArray[1] == 3 || numberArray[1] == 4 || numberArray[1] == 5))
{
printf("MASTERCARD\n");
}
else if (cardLength == 13) && (numberArray[0] == 4)
{
printf("VISA\n");
}
else
{
printf("INVALID\n");
}
Run Code Online (Sandbox Code Playgroud)
小智 -1
如果您希望逻辑完整并且只想修改可读性,您可以尝试全局添加预处理器指令。这将替换您在程序中使用的任何地方的文本或内联函数。例子
#define AMEX_CONDITION (cardLength == 15) && (numberArray[0] == 3 && (numberArray[1] == 4 || numberArray[1] == 7))
Run Code Online (Sandbox Code Playgroud)
并在你的 if 中使用它
if(AMEX_CONDITION){
printf("AMEX");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
233 次 |
| 最近记录: |