Ruby中的循環(huán)語(yǔ)句的用法教程
Ruby中的循環(huán)用于執(zhí)行相同的代碼塊指定的次數(shù)。本章將詳細(xì)介紹Ruby支持的循環(huán)語(yǔ)句。
Ruby while 語(yǔ)句:
語(yǔ)法:
while conditional [do]
code
end
執(zhí)行代碼當(dāng)條件為true時(shí)。while循環(huán)的條件是代碼中的保留字,換行,反斜杠(\)或一個(gè)分號(hào)隔開。
實(shí)例:
#!/usr/bin/ruby
$i = 0
$num = 5
while $i < $num do
puts("Inside the loop i = #$i" )
$i +=1
end
這將產(chǎn)生以下結(jié)果:
Inside the loop i = 0 Inside the loop i = 1 Inside the loop i = 2 Inside the loop i = 3 Inside the loop i = 4
Ruby while 修辭符:
語(yǔ)法:
code while condition
OR
begin
code
end while conditional
執(zhí)行代碼,當(dāng)條件為true。
如果while 修飾符緊跟一個(gè)begin 語(yǔ)句但是沒(méi)有 rescue 或 ensure 子句, 代碼被執(zhí)行前一次條件求值。
實(shí)例:
#!/usr/bin/ruby
$i = 0
$num = 5
begin
puts("Inside the loop i = #$i" )
$i +=1
end while $i < $num
這將產(chǎn)生以下結(jié)果:
Inside the loop i = 0 Inside the loop i = 1 Inside the loop i = 2 Inside the loop i = 3 Inside the loop i = 4
Ruby until 語(yǔ)句:
until conditional [do]
code
end
執(zhí)行代碼當(dāng)條件為false。until 條件語(yǔ)句從代碼分離的保留字,換行符或分號(hào)。
語(yǔ)句:
#!/usr/bin/ruby
$i = 0
$num = 5
until $i > $num do
puts("Inside the loop i = #$i" )
$i +=1;
end
這將產(chǎn)生以下結(jié)果:
Inside the loop i = 0 Inside the loop i = 1 Inside the loop i = 2 Inside the loop i = 3 Inside the loop i = 4 Inside the loop i = 5
Ruby until 修辭符:
語(yǔ)法:
code until conditional
OR
begin
code
end until conditional
執(zhí)行代碼當(dāng)條件為 false。
如果 until 修辭符跟著 begin 語(yǔ)句但沒(méi)有 rescue 或 ensure 子句, 代碼一旦被執(zhí)行在條件求值之前。
例子:
#!/usr/bin/ruby
$i = 0
$num = 5
begin
puts("Inside the loop i = #$i" )
$i +=1;
end until $i > $num
這將產(chǎn)生以下結(jié)果:
Inside the loop i = 0 Inside the loop i = 1 Inside the loop i = 2 Inside the loop i = 3 Inside the loop i = 4 Inside the loop i = 5
Ruby for 語(yǔ)句:
語(yǔ)法:
for variable [, variable ...] in expression [do]
code
end
一次執(zhí)行代碼的每個(gè)元素在 in 表達(dá)式。
實(shí)例:
#!/usr/bin/ruby
for i in 0..5
puts "Value of local variable is #{i}"
end
這里我們定義的范圍 0 .. 5 。因?yàn)樵谡Z(yǔ)句 for i in 0..5 將允許取值的范圍從0到5(含5),這將產(chǎn)生以下結(jié)果:
Value of local variable is 0 Value of local variable is 1 Value of local variable is 2 Value of local variable is 3 Value of local variable is 4 Value of local variable is 5
for...in 循環(huán)幾乎是完全等同于:
(expression).each do |variable[, variable...]| code end
除了一個(gè)for循環(huán)不創(chuàng)建一個(gè)新的局部變量的范圍。一個(gè)循環(huán)的表情從代碼分離,保留字,一個(gè)換行符,或分號(hào)。
例子:
#!/usr/bin/ruby
(0..5).each do |i|
puts "Value of local variable is #{i}"
end
這將產(chǎn)生以下結(jié)果:
Value of local variable is 0 Value of local variable is 1 Value of local variable is 2 Value of local variable is 3 Value of local variable is 4 Value of local variable is 5
Ruby break 語(yǔ)句:
語(yǔ)法:
break
終止大多數(shù)內(nèi)部的循環(huán)。終止塊內(nèi)的方法返回nil如果調(diào)用的方法與相關(guān)塊。
實(shí)例:
#!/usr/bin/ruby
for i in 0..5
if i > 2 then
break
end
puts "Value of local variable is #{i}"
end
這將產(chǎn)生以下結(jié)果:
Value of local variable is 0 Value of local variable is 1 Value of local variable is 2
Ruby next 語(yǔ)句:
語(yǔ)法:
next
跳轉(zhuǎn)到最內(nèi)部循環(huán)的下一次迭代。如果調(diào)用塊一個(gè)塊內(nèi)終止執(zhí)行(帶 yield 或調(diào)用返回 nil )。
例子:
#!/usr/bin/ruby
for i in 0..5
if i < 2 then
next
end
puts "Value of local variable is #{i}"
end
這將產(chǎn)生以下結(jié)果:
Value of local variable is 2 Value of local variable is 3 Value of local variable is 4 Value of local variable is 5
Ruby redo 語(yǔ)句:
語(yǔ)法:
redo
會(huì)重新啟動(dòng)啟動(dòng)這個(gè)最內(nèi)部的循環(huán)迭代,而不檢查循環(huán)條件。
會(huì)重新啟動(dòng) yield or call ,如果一個(gè)塊內(nèi)調(diào)用。
例子:
#!/usr/bin/ruby
for i in 0..5
if i < 2 then
puts "Value of local variable is #{i}"
redo
end
end
這將產(chǎn)生以下結(jié)果,將執(zhí)行無(wú)限循環(huán):
Value of local variable is 0 Value of local variable is 0 ............................
Ruby retry 語(yǔ)句:
語(yǔ)法:
retry
如果 retry 表達(dá)出現(xiàn)在 rescue 子句,則從開始重新開始。
begin do_something # exception raised rescue # handles error retry # restart from beginning end
如果出現(xiàn)重試迭代,塊,或體內(nèi)的表達(dá),重新啟動(dòng)迭代調(diào)用。迭代器的參數(shù)條件將重新計(jì)算。
for i in 1..5 retry if some_condition # restart from i == 1 end
實(shí)例:
#!/usr/bin/ruby
for i in 1..5
retry if i > 2
puts "Value of local variable is #{i}"
end
這將產(chǎn)生以下結(jié)果,將進(jìn)入無(wú)限循環(huán):
Value of local variable is 1 Value of local variable is 2 Value of local variable is 1 Value of local variable is 2 Value of local variable is 1 Value of local variable is 2 ............................
相關(guān)文章
Ruby和Shell腳本實(shí)現(xiàn)判斷成績(jī)及格功能
這篇文章主要介紹了Ruby和Shell腳本實(shí)現(xiàn)判斷成績(jī)及格功能,使用Ruby實(shí)現(xiàn)這個(gè)功能非常簡(jiǎn)潔優(yōu)雅,而Shell的實(shí)現(xiàn)就比較傳統(tǒng)了,需要的朋友可以參考下2015-01-01
快速正確的安裝 Ruby, Rails 運(yùn)行環(huán)境
對(duì)于新入門的開發(fā)者,如何安裝 Ruby, Ruby Gems 和 Rails 的運(yùn)行環(huán)境可能會(huì)是個(gè)問(wèn)題,本頁(yè)主要介紹如何用一條靠譜的路子快速安裝 Ruby 開發(fā)環(huán)境2014-07-07
Ruby與Ruby on Rails框架環(huán)境搭建的簡(jiǎn)明教程
這篇文章主要介紹了Ruby與Ruby on Rails框架環(huán)境搭建的簡(jiǎn)明教程,包括RubyGems的升級(jí)與OpenSSL的支持等配置,需要的朋友可以參考下2016-05-05
Ruby中的String對(duì)象學(xué)習(xí)筆記
這篇文章主要介紹了Ruby中的String對(duì)象學(xué)習(xí)筆記,本文講解了String對(duì)象的定義、String對(duì)象的操作、使用數(shù)組下標(biāo)的方式操作字符串等內(nèi)容,需要的朋友可以參考下2014-11-11
Ruby 中關(guān)于日文轉(zhuǎn)UTF-8及半角全角轉(zhuǎn)換的技巧
Ruby 中關(guān)于日文轉(zhuǎn)UTF-8及半角全角轉(zhuǎn)換的技巧,實(shí)現(xiàn)代碼。2009-05-05

