導入
「〜でなければ」という条件を書きたいとき、if !条件 と書くよりも読みやすい書き方が Ruby には用意されています。また、1行で済む処理は、条件を後ろに置いて短く書くこともできます。
説明
unless は if の逆で、「条件が成り立たないとき」に実行されます。
age = 15
unless age >= 18
puts "未成年です"
else
puts "成人です"
end
処理が1行だけなら、**条件を文の後ろに置く「後置if / 後置unless」(修飾子)**という書き方もよく使われます。
puts "OK" if age >= 18
puts "まだ早い" unless age >= 18
unless に else を付けることはできますが、if と else の組み合わせのほうが読みやすいことが多く、unless は基本的に「else なしの単純な否定条件」で使うのがおすすめです。
やってみよう
age の値を変えて、unless ブロックと後置 if/unless の結果がどちらも連動して変わることを確認しましょう。
演習
変数 stock に 0 を代入し、後置 if を使って stock == 0 のとき "在庫切れです" と表示してください。
ヒント1を見る
puts "在庫切れです" if stock == 0 の1行で書けます。
ヒント2を見る
後置ifは「処理 if 条件」の順番です。