0

使用 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

如您所见,x在 if case 语句之后使用。我不需要运行puts语句 if x = 1。我不想abort脚本并完全终止它,我只想跳过该数组对象并转到下一个。有什么建议么?

4

2 回答 2

1

=分配一个值,x以便您的代码仅x = 1在循环内执行。

相反,您需要==在您的if陈述中使用比较。

您可以使用以下case语句避免这种情况:

case x
when 1
  ...
when 2
  ...
when 3
  ...
else
  ...
end

根据我的经验case,与多个if/else/elsif.

于 2013-08-13T14:06:06.200 回答
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
于 2013-08-13T14:13:51.080 回答