使用ruby 1.9.3,我需要执行以下操作:
test_ids.each do |x|
if x == 1
y = x+1
elsif x == 2
y = x+2
elsif x == 3
(end loop here, start over with next test_id)
else
y = x+4
end
end
如果满足条件而不是在整个脚本中继续,我只需要循环继续数组中的下一个对象。这怎么可能?
编辑:
最终目标是这样的:
case x
when 1
abort
when 2
...
else
...
end
puts x+2
正如您所看到的,{case}语句之后正在使用x
。如果puts
,我不需要运行x = 1
语句。我不想abort
脚本并完全终止它,我只想跳过那个数组对象并转到下一个。有什么建议吗?
答案 0 :(得分:1)
=
为x
分配一个值,因此您的代码只在循环内执行x = 1
。
相反,您需要在==
语句中使用if
进行比较。
您可以使用case
声明避免这种情况:
case x
when 1
...
when 2
...
when 3
...
else
...
end
根据我使用case
的经验,与多个if/else/elsif
相比,往往会澄清代码。
答案 1 :(得分:0)
您正在寻找next
命令。
test_ids.each do |x|
if x == 1
y = x+1
elsif x == 2
y = x+2
elsif x == 3
next
else
y = x+4
end
end