論理演算子の特徴
- 左側から順番に評価されていく
- 式の真偽が決定すると残りの式は評価しない
- 最後に評価された式の値が論理式全体の値になる
- falseとnill以外は真
※orとandに関してはド・モルガンの法則を調べてください
- || (or)について
条件1 || 条件2
条件1,条件2の順に真偽が判定されます。
||の場合どちらかの条件の結果が真であれば結果は真になります。
なので、条件1の結果が真であれば条件2を見なくても全体は真になることがわかります。
逆に言うと条件2を評価する必要があるのは条件1の結果が偽の場合のみです。
- && (and)について
条件1 && 条件2
条件2は||とは逆に条件1の結果が真の場合にのみ評価されます。
- 変数の論理式
var || "Ruby"
varの真偽が判断され、nilかfalseの場合のみ"Ruby"が評価される。
このときは戻り値として考えます。
■ varがオブジェクトを参照していればその値を返す(最後に評価された式がvarの場合)
■ varの結果がnilまたはfalseの場合は、文字列"Ruby"(次の式の値)を返す
応用
name ="Ruby"
# 変数nameにRuby(デフォルト値)を代入します
if var
# varが真のとき(nil,false以外)
name = var
# 変数nameにvarを代入する
end
上記でやりたいことは||を使えば下記のようにかけます。
name = var || "Ruby"
# varの値がnilとfalseの場合(偽)はnameにRubyを代入する
以上です。