LoginSignup
1
0

More than 1 year has passed since last update.

Rubyのtimesでハマった話

Last updated at Posted at 2021-07-03

配列から取り出す時に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公式リファレンス

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0