unless文とは
Rubyにはunless文と呼ばれる特殊な文があります。この文は、与えられた条件が偽のときに実行されます。
つまり、if文の逆です。if文では、与えられた条件が真になるとブロックが実行されますが、unless文では、与えられた条件が偽になるとコードのブロックが実行されます。
if文とor演算子は常に真の条件で動作するため、unless文は偽の条件を表示する必要がある場合に使用されます。
# 書き方
unless 条件
条件が偽の場合の処理
else
それ以外(真)の処理
end
a = 1
unless a > 10
puts "falseの場合の処理"
else
puts "trueの場合の処理"
end
# 出力結果
# falseの場合の処理
修飾子としてのunless
unlessは式を簡潔にわかりやすくするための修飾子として使うこともできます。
unlessを修飾子として使う場合、左辺には条件が偽の時に行う処理、右辺には条件を記述します。
# 書き方
条件が偽の時に行う処理 unless 条件
a = 1
a * 3 unless a == 1
puts(a)
# 出力結果
# 1