title | summary | date |
---|---|---|
論理演算子 |
論理演算子は、bool型の値を使って論理演算を行います。 |
2021-12-25 |
比較演算子は、bool型の値同士で使用できます。数値型の値でも&
、|
、^
演算子を使用することがあります。数値型のものについては、ビット演算子をご覧ください。
論理否定演算子!
が先頭についたリテラルはその値の論理否定となります。次に例を示します。
print(!true); //出力:false
print(!!true);//出力:true
論理積(AND)演算子&
は、左右の値の両方がtrue
と評価された場合のみtrue
を返し、それ以外の場合false
を返します。
&
演算子は常に両方のオペランドを評価する一方、&&
演算子は左辺がfalse
と評価された時点で右辺は評価されません。
print(true & true); //出力:true
print(true & false);//出力:false
次に、この論理演算の真理値表を示します。
x & y |
true |
false |
---|---|---|
true |
true |
false |
false |
true |
false |
論理和(OR)演算子|
は、左右の値の少なくとも一方がtrue
と評価された場合にtrue
を返し、それ以外の場合にfalse
を返します。
|
演算子は常に両方のオペランドを評価する一方、||
演算子は左辺がtrue
と評価された時点で右辺は評価されません。
print(true | false); //出力:true
print(false | false);//出力:false
次に、この論理演算の真理値表を示します。
x | y |
true |
false |
---|---|---|
true |
true |
true |
false |
true |
false |
排他的論理和(XOR)演算子^
は、左右の値が異なると評価された場合(すなわち、片方がtrue
と評価されたならばもう片方がfalse
と評価される場合)にtrue
を返し、それ以外の場合はfalse
を返します。つまりこの演算はbool
に対する!=
と同じ結果となります。次に例を示します。
print(true ^ false);//出力:true
print(true ^ true); //出力:false
次に、この論理演算の真理値表を示します。
x ^ y |
true |
false |
---|---|---|
true |
false |
true |
false |
true |
false |
条件付き論理積(AND)演算子&&
は、左右の値の両方がtrue
と評価された場合のみtrue
を返し、それ以外の場合false
を返します。
&
演算子は常に両方のオペランドを評価する一方、&&
演算子は左辺がfalse
と評価された時点で右辺は評価されません。
print(true && true); //出力:true
print(true && false);//出力:false
次に、この論理演算の真理値表を示します。
x && y |
true |
false |
---|---|---|
true |
true |
false |
false |
true |
false |
条件付き論理和(OR)演算子||
は、左右の値の少なくとも一方がtrue
と評価された場合にtrue
を返し、それ以外の場合にfalse
を返します。
|
演算子は常に両方のオペランドを評価する一方、||
演算子は左辺がtrue
と評価された時点で右辺は評価されません。
print(true || false); //出力:true
print(false || false);//出力:false
次に、この論理演算の真理値表を示します。
x || y |
true |
false |
---|---|---|
true |
true |
true |
false |
true |
false |