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文は、代替のパスがない単純な否定条件の場合に真価を発揮します。一目でコードが読みやすくなる方を選択してください。
チャレンジ
簡単以下の変数が提供されています:
has_ticket = false
is_vip = true
items_in_cart = 0
battery_level = 15
is_charging = falseunless 文を使用して、以下の各シナリオを評価してください。条件が偽(unless がブロックを実行するタイミング)の場合のみ、指定されたメッセージを出力してください。
has_ticketがtrueでない限り、"Please purchase a ticket"と出力してくださいis_vipがtrueでない限り、"VIP access required"と出力してくださいitems_in_cartが0より大きくない限り、"Your cart is empty"と出力してくださいbattery_levelが20より大きくない限り、"Low battery warning"と出力してくださいis_chargingがtrueであるか、またはbattery_levelが50より大きくない限り、"Please charge your device"と出力してください
各メッセージはそれぞれの行に表示される必要があります。unless ブロックをトリガーする条件のメッセージのみを出力してください。
チートシート
unless 文は、条件が 偽 (false) のときにコードを実行します。これは if の反対です。
logged_in = false
unless logged_in
puts "Please log in to continue"
endこれは if !logged_in と同等ですが、多くの場合、より自然に読むことができます。
unless は else と一緒に使うこともできます。
age = 20
unless age < 18
puts "Access granted"
else
puts "Access denied"
endただし、unless は else ブロックのない単純な否定条件に使用するのが最適です。別のパスが必要な場合は、通常 if の方が明確です。
自分で試してみよう
# 変数はすでに定義されています
has_ticket = false
is_vip = true
items_in_cart = 0
battery_level = 15
is_charging = false
# TODO: 以下にコードを書いてください
# unless文を使用して各条件をチェックし、適切なメッセージを表示してくださいこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。