我如何在ruby中的for循环中实现这样的东西:
for(int i = 1;i<=10;i++){
if (i == 7){
i=9;
}
#some code here
}
我的意思是说可以使用&#34; next&#34;跳过但如果我想通过改变变量值本身跳转到不确定的迭代该怎么办。据我所知,循环使用可枚举类型。我想通过索引作为变量循环它,就像我们在C ++中那样做
答案 0 :(得分:3)
你可以做的事情很少:
如果你想根据定义的逻辑跳过几次迭代,你可以使用:
next if condition
如果您打算在整个范围内随机迭代,可以试试这个:
(1..10).to_a.shuffle.each { |i|
# your code
}
如果你想在给定范围的某个块上随机迭代,试试这个:
(1..10).to_a.shuffle.first(n).each { |i| # n is any number within 1 to 10
# your code
}
答案 1 :(得分:2)
您问题的最准确答案是使用while
循环,如下所示:
i = 0
while i < 10
if i == 0 # some condition
i = 9 # skip indexes
else
i += 1 # or not
end
end
答案 2 :(得分:1)
为什么不采用递归方法? 喜欢
foo(x)
{
if x == 7
{
return foo(9)
}
return foo(x+1)
}
答案 3 :(得分:1)
(1..10).each do |i|
next if(i == 7 || i == 8)
# some code here
end
答案 4 :(得分:1)
这个怎么样?
array = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
array.each_with_index do |elem, idx|
break if idx == 9
# do something
puts "element #{idx} with #{elem}"
end