如何在ruby中修改循环变量?

Shu*_*ham 1 ruby ruby-on-rails

for i in (0..5)
  if(i==0)
    i=4
  end
  puts i
end
Run Code Online (Sandbox Code Playgroud)

在上面的程序中,我将输出除外 - 4 5

但相反,它是 - 4 1 2 3 4 5

所以我得出结论,循环变量没有改变.怎么能改变它?有人能告诉我吗?

实际上,在我的程序中,我需要保存当前的循环状态并稍后进行检索,以便在下一个启动程序从其剩余的同一点恢复.

cle*_*tus 9

你能够修改循环变量的唯一方法是使用while循环:

x = (2..7).to_a
i = 0
while (i < x.length)
  i = 4 if i == 0
  puts x[i]
  i = i + 1
end
Run Code Online (Sandbox Code Playgroud)

输出:

6
7
Run Code Online (Sandbox Code Playgroud)

for循环中,正如您所发现的那样,您可以修改循环变量,并且该值将适用于该循环的迭代.在下一次迭代中,它将从您指定的范围中检索下一个元素,这样您的修改后的值将基本上被覆盖.