Menu
CoddyTech

Unless 文

CoddyのRubyジャーニー「基礎」セクションの一部。レッスン 25/88。

Rubyでは、何かが真ではない場合にのみコードを実行したいとき、条件を表現する独自の方法があります。unless文は、基本的にifの反対です。

ifでは、条件がtrueのときにコードが実行されます。unlessでは、条件がfalseのときにコードが実行されます。

logged_in = false

unless logged_in
  puts "Please log in to continue"
end

これは if !logged_in と書くのと同じですが、unless のほうが自然に読めることがよくあります。「その条件が真でない限り、これを実行する」と考えてください。

unlessはelseと一緒に使うこともできます。

age = 20

unless age < 18
  puts "Access granted"
else
  puts "Access denied"
end

ただし、elseブロックが必要な場合は、通常ifを使うほうが明確です。unless文は、別の処理経路を伴わない単純な否定条件がある場合に役立ちます。ひと目で読みやすいコードになるほうを選びましょう。

challenge icon

チャレンジ

簡単

次の変数が用意されています。

has_ticket = false
is_vip = true
items_in_cart = 0
battery_level = 15
is_charging = false

unless 文を使って、以下の各状況を評価してください。条件が偽の場合(つまり、unless がブロックを実行する場合)に限り、指定されたメッセージを出力してください。

  1. has_ticket が true でない場合、Please purchase a ticket を出力する
  2. is_vip が true でない場合、VIP access required を出力する
  3. items_in_cart が 0 より大きくない場合、Your cart is empty を出力する
  4. battery_level が 20 より大きくない場合、Low battery warning を出力する
  5. is_charging が true でなく、かつ battery_level が 50 より大きくない場合、Please charge your device を出力する

各メッセージはそれぞれ別の行に出力してください。unless ブロックが実行される条件に該当するメッセージだけを出力してください。

自分で試してみよう

# 変数はすでに定義されています
has_ticket = false
is_vip = true
items_in_cart = 0
battery_level = 15
is_charging = false

# TODO: 以下にコードを書いてください
# unless 文を使って各条件を確認し、適切なメッセージを表示してください
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Rubyオンラインコンパイラ