Ruby簡(jiǎn)明教程之循環(huán)語句介紹
循環(huán)結(jié)構(gòu)在編程語言中是不可或缺的,所以Ruby中的循環(huán)也有其自定義的規(guī)則。
而我們關(guān)注循環(huán)結(jié)構(gòu),要知道兩個(gè)因素:1) 循環(huán)的條件;2) 循環(huán)執(zhí)行的內(nèi)容
Ruby有一些方式來實(shí)現(xiàn)循環(huán)結(jié)構(gòu)體:
1. times方法
在前面已經(jīng)有提到過了,語法如下:
循環(huán)次數(shù).times do 循環(huán)次數(shù).times {
重復(fù)執(zhí)行的動(dòng)作 重復(fù)執(zhí)行的動(dòng)作
end }
#也可以在times模塊中加入變量
5.times { |i|
print "This is the", i+1, " time. \n"
}
# i變量是從0開始計(jì)算的
2. for 語句
語法:
for 變量 in 開始數(shù)值..結(jié)束數(shù)值 do
反復(fù)執(zhí)行的動(dòng)作
end
# do是可以省略的
from = 0
to = 20
sum = 0
for i in from..to
sum += 1
end
語法:
for 變量 in 對(duì)象
反復(fù)執(zhí)行的動(dòng)作
end
names = ["Windy", "Cindy", "Jack", "Hugo"]
for name in names
print name, " likes Ruby. \n"
end
第二個(gè)語法的for語句,與java中的for each語句非常類似,for (i in list?) {...}
3. while 語句
while語句與JAVA中也是類似的
語法:
while 條件 do
反復(fù)執(zhí)行的動(dòng)作
end
a = 1
sum = 0
while a < 10 do
sum += a
i += a
end
4. until 語句
其語法與while語句類似,只是只有條件不符合的時(shí)候,才會(huì)反復(fù)執(zhí)行循環(huán)
語法:
until 條件 do
反復(fù)執(zhí)行的動(dòng)作
end
# do可以省略
sum = 0
until sum > 50
sum += 1
end
print sum
# 以上until循環(huán)可以轉(zhuǎn)換成下面的while循環(huán)
while !(sum > 50)
sum += 1
end
5. each 方法
在前面已經(jīng)提到過這個(gè)方法了,這里就簡(jiǎn)要記錄下語法
對(duì)象.each { |變量|
想要反復(fù)執(zhí)行的動(dòng)作
}
6. loop方法
它是一種沒有結(jié)束條件的方法,只是不斷進(jìn)行循環(huán)處理,示例如下:
loop {
print "Ruby"
}
循環(huán)的控制:
主要有如下關(guān)鍵字:break,next,redo;而在java中,則有break,continue,return
命令 | 用途 |
break | 停止動(dòng)作,馬上跳出循環(huán) |
next | 直接跳到下一個(gè)循環(huán) |
redo | 以相同的條件重新執(zhí)行這一次循環(huán) |
總結(jié):當(dāng)次數(shù)固定時(shí),使用times方法比較好,而其他大部分循環(huán)幾乎都可以使用while和each方法。
相關(guān)文章
Ruby rails 頁面跳轉(zhuǎn)(render和redirect_to)
今天在做R.R.log的時(shí)候發(fā)現(xiàn)個(gè)問題,在修改密碼的時(shí)候如果沒有通過校驗(yàn),沒有顯示校驗(yàn)錯(cuò)誤的信息。2009-05-05Ruby實(shí)現(xiàn)發(fā)送郵件的兩個(gè)方法
這篇文章主要介紹了Ruby實(shí)現(xiàn)發(fā)送郵件的兩個(gè)方法,本文講解了使用Net::SMTP、使用ruby gem:mail兩種方法實(shí)現(xiàn)郵件發(fā)送,需要的朋友可以參考下2015-01-01Ruby中的public、private、protected區(qū)別小結(jié)
這篇文章主要介紹了Ruby中的public、private、protected區(qū)別小結(jié),即Ruby中訪問控制符的區(qū)別總結(jié),需要的朋友可以參考下2014-08-08使用Ruby re模塊創(chuàng)建復(fù)雜的正則表達(dá)式
復(fù)雜的正則表達(dá)式很難構(gòu)建,甚至很難閱讀。Ruby的Re模塊可以幫助你利用簡(jiǎn)單的表達(dá)式構(gòu)建復(fù)雜的正則表達(dá)式2014-03-03Ruby簡(jiǎn)明教程之?dāng)?shù)組和Hash介紹
這篇文章主要介紹了Ruby簡(jiǎn)明教程之?dāng)?shù)組和Hash介紹,非常簡(jiǎn)潔的講解,可以作為語法備忘,需要的朋友可以參考下2014-06-06