Ruby redo和retry语句

Ruby redo和retry语句

在Ruby中, redo语句 用于重复循环的当前迭代。重做总是在循环内部使用。重做语句重新启动循环,而不重新评估条件。

# Ruby program of using redo statement
  
#!/usr/bin/ruby
restart = false
  
# Using for loop
for x in 2..20
    if x == 15
        if restart == false
  
            # Printing values
            puts "Re-doing when x = " + x.to_s
            restart = true
  
            # Using Redo Statement
            redo
        end
    end
    puts x
end

输出

2
3
4
5
6
7
8
9
10
11
12
13
14
Re-doing when x = 15
15
16
17
18
19
20

在上面的例子中,当 x = 15 时应用重做语句 。

retry 语句

为了从头开始重复整个循环的迭代,使用重试语句。重试总是在循环内部使用。

例子 #1 :

# Ruby program of retry statement
  
# Using do loop
10.times do |i|
  begin
    puts "Iteration #{i}"
    raise if i > 2
  rescue
  
    # Using retry
    retry
  end
end

输出

Iteration 0
Iteration 1
Iteration 2
Iteration 3
Iteration 3
Iteration 3
...

例子#2

# Ruby program of retry statement
def geeks
  attempt_again = true
  p 'checking'
  begin
  
    # This is the point where the control flow jumps
    p 'crash'
    raise 'foo'
      rescue Exception => e
        if attempt_again
          attempt_again = false
  
      # Using retry
      retry       
    end
  end
end

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程