(Programming in Luaより抜粋)
Luaの論理演算子には、
- and
- or
- not
が存在する。
全ての論理演算子は、falseとnilを偽として、それ以外のすべてが真となる。
and演算子
左項が偽の場合にはこれを返す。そうでなければ右項を返す。
(ex)
print(4 and 5) --> 5
print(nil and 13) --> nil
print(false and 13) --> false
or演算子
左側が真であればこれを返す。そうでなければ右項を返す。
(ex)
print(4 or 5) --> 4
print(false or 5) --> 5
not演算子
常にtrueかfalseを返す。
(ex)
print(not nil) --> true
print(not false) --> true
print(not 0) --> false
print(not not nil) --> false
演算子を組み合わせた場合の例
(ex)max = (x > y) and x or y
andはorより演算の優先順位が高いため、
「(x > y) and x」が先に演算される。
●x > yが真の場合
「(x > y) and x」は、右項である「x」を返す。
「x or y」であれば、xが数値であるため(falseやnilではないため)、
左項は真となり、maxにはxの値が代入される。
●x > yが偽の場合
「(x > y) and x」は、左項である「x > y」、つまり偽を返す。
「偽 or y」であれば、maxにはyの値が代入される。
0 件のコメント:
コメントを投稿