-1

これまでに学んだように、switchステートメントを使用して「または」演算子として使用できます。例えば:

switch(num)
case 1:
case 2:
 printf("One or Two");

それは次のように動作します

if(num==1 || num==2)
 printf(""One or two);

switch ステートメントを変更して、OR ではなく AND として使用することは可能ですか?

4

2 に答える 2

7

変数は、2 つの値を同時に保持することはできません。

num == 1 && num == 2 は常に false です。

質問は理にかなっていますか、それとも要点を逃していますか?

于 2012-12-30T04:42:40.003 に答える
3

ド・モルガンの法則は通常、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;
}

既に述べたように、変数は一度に 2 つの数値になることはできないため、これが AND を意味のあるものにする唯一の方法です。

于 2012-12-30T07:02:02.507 に答える