これまでに学んだように、switch
ステートメントを使用して「または」演算子として使用できます。例えば:
switch(num)
case 1:
case 2:
printf("One or Two");
それは次のように動作します
if(num==1 || num==2)
printf(""One or two);
switch ステートメントを変更して、OR ではなく AND として使用することは可能ですか?
これまでに学んだように、switch
ステートメントを使用して「または」演算子として使用できます。例えば:
switch(num)
case 1:
case 2:
printf("One or Two");
それは次のように動作します
if(num==1 || num==2)
printf(""One or two);
switch ステートメントを変更して、OR ではなく AND として使用することは可能ですか?
変数は、2 つの値を同時に保持することはできません。
num == 1 && num == 2 は常に false です。
質問は理にかなっていますか、それとも要点を逃していますか?
ド・モルガンの法則は通常、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 を意味のあるものにする唯一の方法です。