我有一个代码片段,其中使用了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");
}
numberArray[1] == 1 || numberArray[1] == 2 || numberArray[1] == 3 || numberArray[1] == 4 || numberArray[1] == 5
改为numberArray[1] >= 1 && numberArray[1] <= 5
,意思相同但更简洁。 - Some programmer dudeif
语句中缺少括号而无法编译。 - Ian Abbott