Ruby中的迴圈語句的用法教程
這篇文章主要介紹了Ruby中的迴圈語句的用法教程,邏輯迴圈語句是每門程式設計語言的基礎,需要的朋友可以參考下
Ruby中的迴圈用於執行相同的代碼塊指定的次數。本章將詳細介紹Ruby支援的迴圈語句。
Ruby while 語句:
文法:
while conditional [do]
code
end
執行代碼當條件為true時。while迴圈的條件是代碼中的保留字,換行,反斜線()或一個分號隔開。
執行個體:
?
1 2 3 4 5 6 7 8 9 |
#!/usr/bin/ruby $i = 0 $num = 5 while $i < $num do puts("Inside the loop i = #$i" ) $i +=1 end |
這將產生以下結果:
?
1 2 3 4 5 |
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
OR
begin
code
end while conditional
執行代碼,當條件為true。
如果while 修飾符緊跟一個begin 語句但是沒有 rescue 或 ensure 子句, 代碼被執行前一次條件求值。
執行個體:
?
1 2 3 4 5 6 7 8 |
#!/usr/bin/ruby $i = 0 $num = 5 begin puts("Inside the loop i = #$i" ) $i +=1 end while $i < $num |
這將產生以下結果:
?
1 2 3 4 5 |
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
執行代碼當條件為false。until 條件陳述式從代碼分離的保留字,分行符號或分號。
語句:
?
1 2 3 4 5 6 7 8 9 |
#!/usr/bin/ruby $i = 0 $num = 5 until $i > $num do puts("Inside the loop i = #$i" ) $i +=1; end |
這將產生以下結果:
?
1 2 3 4 5 6 |
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
執行代碼當條件為 false。
如果 until 修辭符跟著 begin 語句但沒有 rescue 或 ensure 子句, 代碼一旦被執行在條件求值之前。
例子:
?
1 2 3 4 5 6 7 8 |
#!/usr/bin/ruby $i = 0 $num = 5 begin puts("Inside the loop i = #$i" ) $i +=1; end until $i > $num |
這將產生以下結果:
?
1 2 3 4 5 6 |
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
一次執行代碼的每個元素在 in 運算式。
執行個體:
?
1 2 3 4 5 |
#!/usr/bin/ruby for i in 0..5 puts "Value of local variable is #{i}" end |
這裡我們定義的範圍 0 .. 5 。因為在語句 for i in 0..5 將允許取值的範圍從0到5(含5),這將產生以下結果:
?
1 2 3 4 5 6 |
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 迴圈幾乎是完全等同於:
?
1 |
(expression).each do |variable[, variable...]| code end |
除了一個for迴圈不建立一個新的局部變數的範圍。一個迴圈的表情從代碼分離,保留字,一個分行符號,或分號。
例子:
?
1 2 3 4 5 |
#!/usr/bin/ruby (0..5).each do |i| puts "Value of local variable is #{i}" end |
這將產生以下結果:
?
1 2 3 4 5 6 |
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如果調用的方法與相關塊。
執行個體:
?
1 2 3 4 5 6 7 8 |
#!/usr/bin/ruby for i in 0..5 if i > 2 then break end puts "Value of local variable is #{i}" end |
這將產生以下結果:
?
1 2 3 |
Value of local variable is 0 Value of local variable is 1 Value of local variable is 2 |
Ruby next 語句:
文法:
next
跳轉到最內部迴圈的下一次迭代。如果調用塊一個塊內終止執行(帶 yield 或調用返回 nil )。
例子:
?
1 2 3 4 5 6 7 8 |
#!/usr/bin/ruby for i in 0..5 if i < 2 then next end puts "Value of local variable is #{i}" end |
這將產生以下結果:
?
1 2 3 4 |
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 or call ,如果一個塊內調用。
例子:
?
1 2 3 4 5 6 7 8 |
#!/usr/bin/ruby for i in 0..5 if i < 2 then puts "Value of local variable is #{i}" redo end end |
這將產生以下結果,將執行無限迴圈:
?
1 2 3 |
Value of local variable is 0 Value of local variable is 0 ............................ |
Ruby retry 語句:
文法:
retry
如果 retry 表達出現在 rescue 子句,則從開始重新開始。
?
1 2 3 4 5 6 |
begin do_something # exception raised rescue # handles error retry # restart from beginning end |
如果出現重試迭代,塊,或體內的表達,重新啟動迭代調用。迭代器的參數條件將重新計算。
?
1 2 3 |
for i in 1..5 retry if some_condition # restart from i == 1 end |
執行個體:
?
1 2 3 4 5 6 |
#!/usr/bin/ruby for i in 1..5 retry if i > 2 puts "Value of local variable is #{i}" end |
這將產生以下結果,將進入無限迴圈:
?
1 2 3 4 5 6 7 |
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 ............................ |