0Pricing
Ruby Academy · 课时

if、unless、三元运算符

分支基础

if、unless、三元运算符 是 CoddyKit 上的免费 Ruby Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ruby Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ruby Academy 课程共包含 4 节课。

分支基础

程序需要做出决策。在 Ruby 中,只有当条件为真值时,if 关键字才会运行代码块。

if 表达式会计算一个条件;如果条件成立,就会运行 if 与 end 之间的代码。

age = 20
if age >= 18
  puts "You are an adult"
end

if / else

添加 else 分支来处理条件为假的情况。两个分支中恰好有一个会运行。

age = 12
if age >= 18
  puts "Adult"
else
  puts "Minor"
end

elsif 链

请使用 elsif 按顺序测试多个条件。Ruby 会从上到下检查它们,并运行第一个匹配的分支。

  • 请注意拼写:是 elsif,不是 elseif 或 else if。
score = 75
if score >= 90
  puts "A"
elsif score >= 70
  puts "B"
elsif score >= 50
  puts "C"
else
  puts "F"
end

if 是表达式

在 Ruby 中,几乎所有内容都是会返回值的表达式。if 会返回所运行分支的值,因此您可以将其赋给一个变量。

age = 20
status = if age >= 18
  "adult"
else
  "minor"
end
puts status

修饰符 if

对于单条简短语句,请将 if 放在行尾。这种写法几乎像英语一样自然,也是 Ruby 惯用写法中非常常见的一种。

temperature = 35
puts "It is hot!" if temperature > 30

认识 unless

unless 与 if 相反:当条件为假时,它才会运行主体。您可以将 unless x 理解为 if !x。

logged_in = false
unless logged_in
  puts "Please log in"
end

修饰符 unless

与 if 一样,unless 也可以作为尾部修饰符用于单行代码。

stock = 0
puts "Out of stock" unless stock > 0

避免将 unless 与 else 一起使用

unless 可以接受 else,但这样很快就会变得难以阅读。如果需要两个分支,请优先使用普通的 if。

active = false
unless active
  puts "Inactive"
else
  puts "Active"
end
# Clearer as a normal if/else

三元运算符

三元运算符是针对单个值的紧凑版 if/else。语法为:condition ? value_if_true : value_if_false。

age = 20
label = age >= 18 ? "adult" : "minor"
puts label

字符串中的三元运算符

三元运算符在字符串插值中尤其方便;在这种场景下,完整的 if/else 不容易整洁地放入其中。

count = 1
puts "You have #{count} item#{count == 1 ? "" : "s"}"

如何选择

快速指南:

  • 一般分支使用 if / elsif / else。
  • 对于读起来自然的单个否定检查,使用 unless。
  • 在两个简单值之间进行选择时,使用三元运算符。

可读性始终比炫技更重要。

n = 7
parity = n.even? ? "even" : "odd"
puts "#{n} is #{parity}"

快速检查

测试您对分支的理解。

回顾

您已经学习了 Ruby 的分支工具:

  • if / elsif / else 会根据真值运行代码。
  • if 是会返回值的表达式。
  • 修饰符形式(do_x if cond)适合简短的单行代码。
  • unless 就是 if !——请使用它进行简洁的否定检查。
  • 三元运算符 ? : 可以简洁地在两个值之间进行选择。
grade = 88
result = grade >= 60 ? "pass" : "fail"
puts "Result: #{result}"

常见问题解答

「if、unless、三元运算符」课时是免费的吗?

是的 — 「if、unless、三元运算符」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ruby Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ruby Academy 课程共包含 4 节课。

「if、unless、三元运算符」这节课中我会学到什么?

分支基础 你通过在浏览器中直接运行的动手代码来练习 Ruby Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Ruby Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Ruby Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「if、unless、三元运算符」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Ruby Academy 课中编写并运行代码吗?

能。每节 Ruby Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. if、unless、三元运算符
  2. case/when 表达式
  3. Ruby 中的真值判断
  4. 守卫子句
← 返回 Ruby Academy