配列から取り出す時に0から数えるというのは知っていましたが、timesも同じ仕様になっていると知らずにちょっとハマったのでメモ
そもそもtimesとは
- Rubyの繰り返し処理に使うメソッドの一つ
例えば
5.times do
puts 'Hello World'
end
は以下の様になる。
Hello World
Hello World
Hello World
Hello World
Hello World
ハマった事
全部Hello Worldと出力するのもつまらんという事で、最後だけ変更しようとした時に以下の様にしてしまった。
5.times do |i|
if i == 5
puts 'Hello Work'
else
puts 'Hello World'
end
end
この場合は残念ながらこうなってしまう.
Hello World
Hello World
Hello World
Hello World
Hello World
こうすればOK
5.times do |i|
if i + 1 == 5
puts 'Hello Work'
else
puts 'Hello World'
end
end
Hello World
Hello World
Hello World
Hello World
Hello Work
他の繰り返し処理や冒頭であげた配列も0から数えます。0から数えるということを頭の片隅に置いておけば、なんてことないと思うのでプログラミング初学者の方は気を付けましょう。
参考
Ruby公式リファレンス