until 循环
本课属于 Coddy Ruby 学习旅程的“基础知识”单元。第 45 课,共 88 课。
until 循环与 while 循环相反。它不会在条件为真时运行,而是会一直运行,直到条件变为真。你可以把它理解为“持续运行,直到这件事发生”。
count = 1
until count > 3
puts count
count += 1
end这会输出 1、2、3。只要 count > 3 为假,循环就会继续。一旦 count 变为 4,条件就为真,循环便会停止。
将它与等效的 while 循环进行比较:
# 这两个循环的作用相同:
while count <= 3 # 只要这个条件为 TRUE,就一直运行
until count > 3 # 运行到这个条件为 TRUE 为止当你在等待某件事发生时,使用 until 循环可以让代码更易读。下面是一个倒计时示例:
num = 5
until num == 0
puts num
num -= 1
end
puts "Liftoff!"这会从 5 倒数到 1,然后在 num 达到 0 时打印 "Liftoff!"。当 until 能更清楚地表达你的意图时,尤其是在等待特定条件发生时,选择它。
挑战
简单从输入中读取数字 n。使用 until 循环打印从 1 到 n 的所有数字,每个数字单独占一行。到达 n 后,在新的一行打印 Done!。
循环应持续执行,直到计数器大于 n。
输入是一个表示目标数字的整数。
例如,如果输入是 4,输出应为:
1
2
3
4
Done!如果输入是 6,输出应为:
1
2
3
4
5
6
Done!亲手试试
# 读取目标数字
n = gets.to_i
# 初始化 counter
counter = 1
# TODO: 在下方编写代码
# 用 until 循环打印从 1 到 n 的数字
# 循环应持续到 counter 大于 n 为止
# 循环结束后,打印说明中指定的准确文本
puts "Done!"这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Ruby 在线编译器