myDerived::myDerived() : myBase(), myType( mySubType::type1 ) {}
跳转到下一次迭代,但我需要一些方法来跳转 n 迭代。例如,如果我调用虚构的next
,它会跳过两次迭代。可以这样做吗?
我的项目是用Rails编写的,但这是一个Ruby问题 - 这里代表我的项目:
next(2)
但是,一旦answer_set_one.each |answer_one|
answer_set_two.each |answer_two|
#in here, if answer_two and answer_one matches, do something
end
end
与任何answer_two
匹配,就无法与任何其他answer_one
匹配。
答案 0 :(得分:1)
应该使用休息。在回复上面的注释时,break语句不会退出这两个循环。试试这个要清楚:
[1,2,3].each do |x|
p x
%w(a b).each do |y|
p y
break if y == 'a'
end
end;
编辑:在进一步澄清后,这应该做你想要的吗?
answer_set_one.each |answer_one|
matched = false
answer_set_two.each |answer_two|
next if matched
matched = true if answer_two == answer_one
# do whatever you still need to do here
end
end
答案 1 :(得分:0)
你能在这里写下你的循环吗?
例如,在此循环中
(1..10).each do |a|
next if a.even?
puts a
end
它打印出1,3,5,7,9所以基本上它会跳过2次迭代
如果适合您的循环,您可以使用next if
语句
答案 2 :(得分:0)
为什么不使用班次?如下(跳过3个元素):
arr = [1,2,3,4,5,6,7,8,9,10,11,12]
skip = 3
arr.each do |x|
p x
(skip-1).times {arr.shift}
end
$ ruby test.rb
1
4
7
10
答案 3 :(得分:0)
关注您的代码,请查看以下内容:
answer_set_one = (1..9).to_a
answer_set_two = (1..9).to_a
answer_set_one.each do |answer_one|
answer_set_two.each do |answer_two|
#in here, if answer_two and answer_one matches, do something
puts answer_one
break if answer_two == answer_one
end
end
当它发现answer_one == answer_two
它停止寻找另一个答案时。