0

別のサイトで Ruby を学ぼうと試み始めたところですが、これまでのところ理にかなっています。しかし、これは私を混乱させます。目標は、「next」を使用して 20 から 0 までの偶数のみを表示するようにプログラムを取得することでした。チュートリアルでは、正しいコードは である必要があることが示されましたがnext if i % 2 == 0、これは理にかなっていますが、失敗し続けました。0 を 1 に変更すると、うまくいきました。

これは、チュートリアルが示したコードで、機能するはずであり、私にとって意味があります。

i = 20
loop do
  i -= 1
  next if i % 2 == 0   # this is the line that changed
  print "#{i}"
  break if i <= 0
end

チュートリアルが正しいと認めたコードは次のとおりです。

i = 20
loop do
  i -= 1
  next if i % 2 == 1   # this is the line that changed
  print "#{i}"
  break if i <= 0
end
4

3 に答える 3

1

nextループ内の次のコードをスキップし、最初に戻って次のループを開始します。したがって、偶数を表示したい場合は、奇数を でスキップする必要がありますnext if i % 2 == 1。逆も同様です。どのチュートリアルを読んでいるのだろうか...

iループ内で が 0 になると、条件を満たし、実行i % 2 == 0nextれ、breakその後のチェックはスキップされます。

i考えられる変更の 1 つは、コンソールに出力する前に負でないかどうかをチェックすることです (それ以外の場合はブレークします)。これにより、次のコードが生成されます。

i = 20
loop do
  i -= 1
  next if i % 2 == 0   # this is the line that changed
  break if i < 0
  print "#{i}"
end

偶数のみを表示するi = 21には、最初のループで i から 1 が減算されるため、 から開始する必要がありますi = 20

i = 21
loop do
  i -= 1
  next if i % 2 == 1   # this is the line that changed
  print "#{i} "
  break if i <= 0
end
于 2013-06-19T02:58:19.800 に答える