雷林鵬分享:Ruby 循環

  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(編輯:雷林鵬 來源:網絡)

相關文章
相關標籤/搜索