Ruby 繰り返し処理の違い

●for文

指定したオブジェクトの範囲だけ繰り返し取得する。配列の中身を取り出すのを繰り返して全て取得する。

 for num in 1..5 do

   puts num 

 end 

 とすれば1〜5が表示される。

 

 

 

●while文

指定した条件式がtrueである限り処理を繰り返す。条件式の指定がfor

文と違うところ。

  num = 0 

 while num <= 10 do

   puts num 

   num += 1

 end 

 とすれば1〜10が表示される。ローカル変数numが10以下の条件で繰り返しputsされ、putsした後に1が足される処理がなされる。

 

 

●until文

指定した条件式がfalseである限り処理を繰り返す。while文の逆である。

  num = 20 

 until num <= 10 do

   puts num 

   num -= 1

 end 

 とすれば20〜11が表示される。ローカル変数numが10以下になるまで、つまりnumが条件式に対してfalseであり続ける限り処理がなされる。

 

 

今回はfor文とwhile文の違いを理解するのが目的。条件式かどうかである。

他にも繰り返し処理はある

  • each(配列の中身を繰り返し取り出す)
  • loop(breakを挟むまで繰り返す。if文で条件差し込み)
  • times(回数を指定して繰り返す)
  • upto/downto(数字を1ずつ上げたり下げたりして繰り返す)
  • step(引数で上限と上昇単位を指定して繰り返す)
  • prime(任意の数まで素数を出力する)

これらは適宜出てきたらレファレンスを見て使おう。eachはよくお世話になります。これからもよろしくね。