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>