考虑我有一个带有条件内部的循环,如果条件为真,则必须重复循环的当前迭代。例如,请考虑以下方法。阅读if语句中的注释。
def func1(arr)
size = arr.size - 1
max = arr[size]
0.upto(size) do |x|
if (*boolean statement*)
*repeat current iteration*
end
end
func2(arr)
end
我该怎么做呢?如果你想知道为什么我需要这是因为我正在修改数组,如果条件对于给定的x为真,那么索引x处的元素将被移除并放置在数组的末尾。如果循环继续,那么它会跳过x之后的元素,因为这个元素现在已经删除了一个索引。在java中,这是通过我认为的continue关键字完成的,是否有ruby等价物?
谢谢!
答案 0 :(得分:3)
使用redo
:
def func1(arr)
size = arr.size - 1
max = arr[size]
0.upto(size) do |x|
redo if (*boolean statement*)
end
func2(arr)
end
答案 1 :(得分:0)
如果我理解你的问题,你似乎就是这么简单 需要用'while'条件替换你的'if'条件:
def func1(arr)
size = arr.size - 1
max = arr[size]
0.upto(size) do |x|
while (*boolean statement*)
*repeat current iteration*
end
end
func2(arr)
end