Ruby 循环语句
循环是计算机系统重复执行任务的机制。本章节中,我们会为大家讲解在 Ruby 中如何进行循环操作。
1. while
while
循环旨在重复执行命令直到不满足条件,语法如下:
实例:
i = 0
while i < 5 do
puts i
i += 1
end
# ---- 输出结果 ----
0
1
2
3
4
解释:i 的初始化值为0,因为 i<5
,所以进入循环中不断输出并进行加 1 的操作,直到 i 等于 5,不满足 i<5
的条件后,跳出循环执行完成。
**经验:**我们在实际开发中会省略 do
:
i = 0
while i < 5
puts i
i += 1
end
# ---- 输出结果 ----
0
1
2
3
4
有时我们需要在条件执行完之间停止循环,这时我们会使用 break
:
i = 0
while i < 5
puts i
i += 1
break if i == 2
end
# ---- 输出结果 ----
0
1
解释:当 i 等于 2 的时候,强制中断循环。
2. until
until
和 while
相反,它旨在重复执行直到条件满足为止。
实例:
i = 0
until i == 5
puts i
i += 1
end
# ---- 输出结果 ----
0
1
2
3
4
until
也可以用作语句修饰符,后置使用:
实例:
i = 0
puts i += 1 until i == 5
# ---- 输出结果 ----
1
2
3
4
5
3. for…in
for 循环是经典的循环构造,它允许任务重复特定的次数。Ruby 不同点在于,它可以和范围(Range)结合。
实例:
for i in 1..8 do
puts i
end
# ---- 输出结果 ----
1
2
3
4
5
6
7
8
一般来说 do
是可以省略的,除非代码放到一行中。
实例:
for i in 1..8 do puts i end
# ---- 输出结果 ----
1
2
3
4
5
6
7
8
我们还可以嵌套使用它:
实例:
for j in 1..5 do
for i in 1..5 do
print i, " "
end
puts
end
# ---- 输出结果 ----
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
另外,break
语句可用于打破 for 循环(请注意,仅退出内部for循环,如果嵌套了该循环,则外部循环将继续循环运行):
实例:
for j in 1..5 do
for i in 1..5 do
print i, " "
break if i == 2
end
end
# ---- 输出结果 ----
1 2
1 2
1 2
1 2
1 2
next
会调到下一次循环。
实例:
for j in 1..5 do
for i in 1..5 do
next if i == 2
print i, " "
end
end
# ---- 输出结果 ----
1 3 4 5
1 3 4 5
1 3 4 5
1 3 4 5
1 3 4 5
解释:每当循环到 i 等于 2 的时候直接跳过下面的内容进行下一次循环。
4. 小结
本小节中我们学习了 Ruby 的三种循环方式:while、until、for…in,以及在循环中我们可以通过break
来中断循环,使用next
直接进行下一次循环的两种控制语句。