Ruby中的迴圈語句的用法教程

來源:互聯網
上載者:User

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

............................

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.