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 = false使用 unless 语句来检查以下每种情况。只有当条件为假时才输出指定消息(此时 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 代码块的条件对应的消息。
亲手试试
# 变量已经为你定义好了
has_ticket = false
is_vip = true
items_in_cart = 0
battery_level = 15
is_charging = false
# TODO: 在下方编写代码
# 使用 unless 语句检查每个条件,并打印相应的消息这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Ruby 在线编译器