在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,这是无限情况。
