Ruby 循環express
Ruby 中的循環用於執行相同的代碼塊若干次。本章節將詳細介紹 Ruby 支持的全部循環語句。ruby
Ruby while 語句網絡
語法ide
while conditional [do]oop
codecode
end作用域
當 conditional 爲真時,執行 code。while 循環的 conditional 經過保留字 do、一個換行符、反斜線 \ 或一個分號 ; ,來與 code 分離開。it
實例io
#!/usr/bin/ruby變量
$i = 0
$num = 5
while $i < $num do
puts("Inside the loop i = #$i" )
$i +=1
end
這將產生如下結果:
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 修飾符
語法
code while condition
或者
begin
code
end while conditional
當 conditional 爲真時,執行 code。
若是 while 修飾符跟在一個沒有 rescue 或 ensure 子句的 begin 語句後面,code 會在 conditional 判斷以前執行一次。
實例
#!/usr/bin/ruby
$i = 0
$num = 5
begin
puts("Inside the loop i = #$i" )
$i +=1
end while $i < $num
這將產生如下結果:
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 語句
until conditional [do]
code
end
當 conditional 爲假時,執行 code。until 語句的 conditional 經過保留字 do、一個換行符或一個分號,來與 code分離開。
實例
#!/usr/bin/ruby
$i = 0
$num = 5
until $i > $num do
puts("Inside the loop i = #$i" )
$i +=1;
end
這將產生如下結果:
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 修飾符
語法
code until conditional
OR
begin
code
end until conditional
當 conditional 爲假時,執行 code。
若是 until 修飾符跟在一個沒有 rescue 或 ensure 子句的 begin 語句後面,code 會在 conditional 判斷以前執行一次。
實例
#!/usr/bin/ruby
$i = 0
$num = 5
begin
puts("Inside the loop i = #$i" )
$i +=1;
end until $i > $num
這將產生如下結果:
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 語句
語法
for variable [, variable ...] in expression [do]
code
end
針對 expression 中的每一個元素分別執行一次 code。
實例
#!/usr/bin/ruby
for i in 0..5
puts "Value of local variable is #{i}"
end
在這裏,咱們已經定義了範圍 0..5。語句 for i in 0..5 容許 i 的值從 0 到 5(包含 5)。這將產生如下結果:
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 循環幾乎是徹底等價於:
(expression).each do |variable[, variable...]| code end
可是,for 循環不會爲局部變量建立一個新的做用域。for 循環的 expression 經過保留字 do、一個換行符或一個分號,來與 code 分離開。.
實例
#!/usr/bin/ruby
(0..5).each do |i|
puts "Value of local variable is #{i}"
end
這將產生如下結果:
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 語句
語法
break
終止最內部的循環。若是在塊內調用,則終止相關塊的方法(方法返回 nil)。
實例
#!/usr/bin/ruby
for i in 0..5
if i > 2 then
break
end
puts "Value of local variable is #{i}"
end
這將產生如下結果:
Value of local variable is 0
Value of local variable is 1
Value of local variable is 2
Ruby next 語句
語法
next
跳到最內部循環的下一個迭代。若是在塊內調用,則終止塊的執行(yield 或調用返回 nil)。
實例
#!/usr/bin/ruby
for i in 0..5
if i < 2 then
next
end
puts "Value of local variable is #{i}"
end
這將產生如下結果:
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 語句
語法
redo
從新開始最內部循環的該次迭代,不檢查循環條件。若是在塊內調用,則從新開始 yield 或 call。
實例
#!/usr/bin/ruby
for i in 0..5
if i < 2 then
puts "Value of local variable is #{i}"
redo
end
end
這將產生如下結果,並會進入一個無限循環:
Value of local variable is 0
Value of local variable is 0
............................
Ruby retry 語句
語法
retry
若是 retry 出如今 begin 表達式的 rescue 子句中,則從 begin 主體的開頭從新開始。
begin
do_something # 拋出的異常
rescue
# 處理錯誤
retry # 從新從 begin 開始
end
若是 retry 出如今迭代內、塊內或者 for 表達式的主體內,則從新開始迭代調用。迭代的參數會從新評估。
for i in 1..5
retry if some_condition # 從新從 i == 1 開始
end
實例
#!/usr/bin/ruby
for i in 1..5
retry if i > 2
puts "Value of local variable is #{i}"
end
這將產生如下結果,並會進入一個無限循環:
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
............................
本文轉載自:w3cschool(編輯:雷林鵬 來源:網絡)