以下の要件を満たす in1to100メソッドを作ろう。
第一引数のnumが1以上かつ100以下の範囲であればTrueを出力すること
第二引数のpeachがTrueの場合は、第一引数numが条件範囲外でもTrueを出力すること
それ以外はFalseを出力すること
def in1to100(num, peach)
# ここに条件式を記述する
end
# 呼び出し例
in1to100(95,false)
)
出力例
in1to100(95,false) →True
if ( 【複数の条件が含まれる条件式】 )
end
複数の条件式を組み合わせた複雑な条件式を記述するために論理演算子&&と||を使う。
条件式aと条件式bを組み合わせる場合は以下のように書く。
# aもbもtrueの場合にtrue
a && b
# aかbのどちらかがtrueの場合にtrue
a || b
Rubyの論理演算子では、左辺から右辺に条件式を評価する。もし式全体の評価が確定した場合は、その時点で残りの評価を行わない。
上の例で言えば、a&&bにおいてaがfalseの時点で全体がfalseと確定するため、bの判定は行わない。また、a||bでは、aがtrueの時点で全体がtrueと確定するため、bの判定は行わない。
上の論理演算子も使って作ると、こうなる。
def in1to100(num, peach)
if (num >= 1 && num <= 100) || peach
puts "True"
else
puts "False"
end
end
# 呼び出し例
in1to100(115,false)
in1to100(35,false)
in1to100(35,true)