Ruby redo/retry語句


Ruby redo語句用於重複迴圈的當前疊代。 redo語句在沒有存取迴圈的條件的情況下進行。

redo語句在一個迴圈中使用。

語法:

redo

程式碼範例:

#!/usr/bin/ruby   

array=[1,2,3,4,5]
array.each do |i|
    puts i
    i+=1
    redo if i==3
end#輸出:1 2 3 3 4 5

將上面程式碼儲存到檔案: redo-statment.rb 中,執行上面程式碼,得到以下結果 -

F:\worksp\ruby>ruby redo-statment.rb
1
2
3
3
4
5

F:\worksp\ruby>

Ruby retry語句

Ruby retry語句用於從一開始重複整個迴圈疊代。

retry語句在迴圈中使用。

語法:

retry

範例程式碼:

#!/usr/bin/ruby   

n = 0
begin
  puts 'Trying to do something?'
  raise 'oops'
rescue => ex
  puts ex
  n += 1
  retry if n < 3
end
puts "Ok, I give up"

將上面程式碼儲存到檔案: retry-statment.rb 中,執行上面程式碼,得到以下結果 -

F:\worksp\ruby>ruby retry-statment.rb
Trying to do something?
oops
Trying to do something?
oops
Trying to do something?
oops
Ok, I give up

F:\worksp\ruby>