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はよくお世話になります。これからもよろしくね。