迴圈結構在程式設計語言中是不可或缺的,所以Ruby中的迴圈也有其自訂的規則。
而我們關注迴圈結構,要知道兩個因素:1) 迴圈的條件;2) 迴圈執行的內容
Ruby有一些方式來實現迴圈結構體:
1. times方法
在前面已經有提到過了,文法如下:
複製代碼 代碼如下:
迴圈次數.times do 迴圈次數.times {
重複執行的動作 重複執行的動作
end }
#也可以在times模組中加入變數
5.times { |i|
print "This is the", i+1, " time. \n"
}
# i變數是從0開始計算的
2. for 語句
複製代碼 代碼如下:
文法:
for 變數 in 開始數值..結束數值 do
反覆執行的動作
end
# do是可以省略的
from = 0
to = 20
sum = 0
for i in from..to
sum += 1
end
文法:
for 變數 in 對象
反覆執行的動作
end
names = ["Windy", "Cindy", "Jack", "Hugo"]
for name in names
print name, " likes Ruby. \n"
end
第二個文法的for語句,與java中的for each語句非常類似,for (i in list?) {...}
3. while 語句
while語句與JAVA中也是類似的
複製代碼 代碼如下:
文法:
while 條件 do
反覆執行的動作
end
a = 1
sum = 0
while a < 10 do
sum += a
i += a
end
4. until 語句
其文法與while語句類似,只是只有條件不符合的時候,才會反覆執行迴圈
複製代碼 代碼如下:
文法:
until 條件 do
反覆執行的動作
end
# do可以省略
sum = 0
until sum > 50
sum += 1
end
print sum
# 以上until迴圈可以轉換成下面的while迴圈
while !(sum > 50)
sum += 1
end
5. each 方法
在前面已經提到過這個方法了,這裡就簡要記錄下文法
複製代碼 代碼如下:
對象.each { |變數|
想要反覆執行的動作
}
6. loop方法
它是一種沒有結束條件的方法,只是不斷進行迴圈處理,樣本如下:
複製代碼 代碼如下:
loop {
print "Ruby"
}
迴圈的控制:
主要有如下關鍵字:break,next,redo;而在java中,則有break,continue,return
命令 |
用途 |
break |
停止動作,馬上跳出迴圈 |
next |
直接跳到下一個迴圈 |
redo |
以相同的條件重新執行這一次迴圈 |
總結:當次數固定時,使用times方法比較好,而其他大部分迴圈幾乎都可以使用while和each方法。