据我所知,到目前为止,我可以使用switch
语句并将其用作'或'运算符。例如:
switch(num)
case 1:
case 2:
printf("One or Two");
就像
一样if(num==1 || num==2)
printf(""One or two);
是否可以修改switch语句并将其用作AND而不是OR?
答案 0 :(得分:7)
变量不能同时保存两个值。
num == 1&& num == 2总是假的。
问题是否有意义,还是我错过了这一点?
答案 1 :(得分:3)
De Morgan's law通常是在OR和AND之间进行转换的关键。作为C表达式,它是
!( A || B ) == ( !A && !B )
switch
语句可能有default
个案,在没有满足其他条件时采用。如果它是你已经给出的OR案件的唯一替代品,那么由于与OR相反,它自动成为De Morgan的AND案例。
switch(num) {
case 1:
case 2:
printf("One or Two\n");
break;
default:
printf("Not one AND not two\n");
break;
}
如前所述,这是使AND有意义的唯一方法,因为变量不能同时为两个数字。