Ruby 防止被零除
在某些情况下,这种表达方式Ruby 防止被零除,ruby,divide-by-zero,Ruby,Divide By Zero,在某些情况下,这种表达方式 ...some loop solution = n[0].to_s+a[0]+n[1].to_s+a[1]+n[2].to_s+a[2]+n[3].to_s+a[3]+n[4].to_s+a[4]+n[5].to_s puts solution if eval(solution) == 100 #=> `eval': divided by 0 (ZeroDivisionError) 如何防止这种情况,或者,跳过循环计算并继续如果您真的只想跳过当前计
...some loop
solution = n[0].to_s+a[0]+n[1].to_s+a[1]+n[2].to_s+a[2]+n[3].to_s+a[3]+n[4].to_s+a[4]+n[5].to_s
puts solution if eval(solution) == 100
#=> `eval': divided by 0 (ZeroDivisionError)
如何防止这种情况,或者,跳过循环计算并继续如果您真的只想跳过当前计算并向前迈进,最简单的方法是begin rescue语句
loop do
begin
solution = n[0].to_s+a[0]+n[1].to_s+a[1]+n[2].to_s+a[2]+n[3].to_s+a[3]+n[4].to_s+a[4]+n[5].to_s
puts solution if eval(solution) == 100
rescue ZeroDivisionError
# catch error
end
end
哇。我怀疑:
n[0].to_s+a[0]+n[1].to_s+a[1]+n[2].to_s+a[2]+n[3].to_s+a[3]+n[4].to_s+a[4]+n[5].to_s
又名:
可以更好地写为:
n[0..5].map(&:to_s).zip(a[0..4]).flatten.join
或:
n[0..5].map(&:to_s).zip(a[0..4]).flatten.join
n.map(&:to_s).zip(a).flatten.join