在Ruby中重做和重试语句

Ruby重做和重试语句

Ruby是一种非常灵活的语言。它为您提供了许多使代码更有效和更清晰的方法。借助重做和重试语句,可以使您的代码对用户更具可读性,并且可以更有效地执行功能。让我们仔细阅读每个语句的语法,实现区域和示例。

1)Ruby重做声明

当您必须在同一循环中重新执行迭代时,重做语句就会出现。它在循环中重复当前的迭代。重做语句的功能是它执行时甚至不评估循环条件。有时,这会导致创建无限循环。让我们看一下语法和示例。

语法:

    while (#condition)
        #statements
        redo if  #condition
    end

范例1:

=begin
Ruby program to demonstrate redo 
=end

i = 30   

while(i < 50)      
    puts "Value of i is #{i}"   
    i += 1   
    redo if i == 50
end

输出结果

Value of i is 30
Value of i is 31
Value of i is 32
Value of i is 33
Value of i is 34
Value of i is 35
Value of i is 36
Value of i is 37
Value of i is 38
Value of i is 39
Value of i is 40
Value of i is 41
Value of i is 42
Value of i is 43
Value of i is 44
Value of i is 45
Value of i is 46
Value of i is 47
Value of i is 48
Value of i is 49
Value of i is 50

说明:

在上面的代码中,您可以看到while循环中指定的条件告诉迭代最多可以完成49次,但是由于引入了redo语句,因此迭代最多可以进行50次,因为redo语句在检查条件之前执行。

范例2:

=begin
Ruby program to demonstrate redo 
=end

i = 30   

while(i < 50)      
    puts "Value of i is #{i}"   
    i += 1   
    redo if i > 45
end

输出结果

An infinite loop

说明:

上面的代码将给出一个无限循环,因为我将始终大于45

2)Ruby重试语句

在Ruby中,retry语句仅在begin / rescue块内起作用。您也可以说它在异常处理的上下文中起作用。要重新执行该块时,应使用retry语句

语法:

    retry

示例

=begin
Ruby program to demonstrate retry 
=end

for i in 0..10
	begin
		puts "VALUE OF i #{i}"
		raise if i >=9
		rescue
		retry
	end
end

输出结果

Infinite loop.

说明:

这也将产生无限循环,因为将引发异常,直到i> = 9,这是无限情况。