1. 程式人生 > Ruby 程式語言入門 >18 Ruby 迴圈語句

18 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

untilwhile 相反,它旨在重複執行直到條件滿足為止

例項:

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