与`unless` next`的next
语句用于跳过循环的一部分,并继续循环的下一次迭代的执行顺序。它可以结合使用for
和while
语句。混淆,当`在红宝石
我已经看到了使用下一个人如果有复杂的代码后,一定条件下被评估,即
next if @state!=:some_state
# some long complicated code
现在,这里我在IRB
如下面的next
奏:
n = 1
loop do
n = n + 1
next unless n == 10
print "Good"
break
end
# Good=> nil
上面的一个理解。很清楚。
n = 1
#=> 1
loop do
print "#{n}"
n = n + 1
next puts "hi" unless n == 5
p "good"
break
end
#1hi
#2hi
#3hi
#4"good"
#=> nil
在上面的代码中,无法理解关于何种顺序puts "hi"
和执行的线。哪个先执行?
下面一个通向infinite Loop
。
n = 1
#=> 1
loop do
print "#{n}"
n = n + 1
next puts "hi"; 2 + 3 unless n == 5
p "good"
break
end
,而这个人是不错的:
n = 1
#=> 1
loop do
print "#{n}"
n = n + 1
next puts "hi", 2 + 3 unless n == 5
p "good"
break
end
#1hi
#5
#2hi
#5
#3hi
#5
#4"good"
#=> nil
请帮我在这里认识 - 请问这是一个解决forever
循环?
可能重复的[是从'下一个'坏主意返回一个值?](http://stackoverflow.com/questions/9561187/is-returning-a-value-from-next-a-bad-idea ) – sawa 2013-03-04 22:05:43
@sawa:这不是真正相关的,因为OP想知道何时会根据尝试的条件修饰符执行'next' – PinnyM 2013-03-04 22:12:58
@sawa您能否删除该链接,因为它与我的问题无关? – 2013-03-04 22:23:39