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
直接進行下一次循環的兩種控制語句。