Codecademy:Ruby'Loops&迭代者的练习5.9

时间:2013-12-29 19:09:02

标签: ruby loops modulo

问题提示是:

  

下一个关键字可用于跳过循环中的某些步骤。   例如,如果我们 想要打印偶数,我们   可写:

i = 20
loop do
  i -= 1
  next if i % 2 == 0
  print "#{i}"
  break if i <= 0
end

这实际上不会打印出偶数吗?我读上面的方法是,i = 20,它减少到19,if语句为false,所以没有任何东西被打印,循环再次循环。这次i = 18,if语句为真,18被打印。

但是,看,当你做练习时,上面的代码打印出19,17,15等等。这里发生了什么?是否在评估if语句后发生了减量?

提前致谢。

1 个答案:

答案 0 :(得分:1)

  

如果声明为假,则不会打印任何内容

你为什么这么认为?当i19时,if - 语句为false,因此不会跳过迭代,并执行下一行中的print。当i18时,if - 语句为true,因此会跳过next次迭代而不执行print下一行。