※こちらの記事は、プロスタ編集部が学習者の多いRubyの文法記事を公開することで、皆様の学習にお役に立ちたい意図で投稿しております。
参考サイト:【Ruby入門】for文(繰り返し処理)の使い方
【Ruby入門】for文(繰り返し処理)の使い方
for文の書き方
for文を使うと、指定した範囲だけ処理を繰り返せます。
for文は以下のように書きます。
for 変数 in 範囲 do
処理内容
end
doはwhile文のときと同様、省略可能です。
[1行目]
まずfor文がここから始まりますよ、という宣言をします。続いて、ループの範囲を入れるための変数を用意し、繰り返しの始点と終点の範囲を指定します。この範囲は、数値で指定することができます。数値で指定する場合は「0..5」のように書きます。これは0から5という意味です。実は、数値以外に配列やハッシュを範囲に指定することもできますが、これはもっと慣れてきてから学んでもいいでしょう。
[2行目]
ループさせたい内容を書きます。もちろん、何行書いてもかまいません。
[3行目]
最後の行で、for文はここまでですよという宣言をします。
for文は同じループ処理をする方法として、しばしばwhile文と比較されます。for文はwhile文と比べると、おおまかに次のような違いがあります。
まず、while文は条件に当てはまる限り処理を続けるという命令であるのに対し、for文は指定した範囲の始点から終点にかけて、処理内容を繰り返す処理となります。
さらにfor文は始まりと終わりが1行目の時点で設定できるので、始まる前の変数の初期値設定も、ループごとに変数内の数値を加算する処理も必要ありません。
for文を使ってみる
それでは、実際にfor文を使ったプログラムを書いてみます。0から5までの範囲で、現在変数iの中に入っている数は何なのか表示するプログラムを書くとしましょう。すると、コードは以下のようになります。
for i in 0..5 do
#0から始めて、変数iの中身が5になるまで処理をします。
puts "現在の変数iの中身は#{i}です。"
#変数iの中身を表示します。
end
#for文ここまで
範囲に数字を指定する場合、始点と終点を「..」(ピリオド2つ)で繋ぎます。
このコードを実行すると、以下のように表示されます。
実行結果
現在の変数iの中身は0です。
現在の変数iの中身は1です。
現在の変数iの中身は2です。
現在の変数iの中身は3です。
現在の変数iの中身は4です。
現在の変数iの中身は5です。
0から5までを表示し、6回処理をした形となりました。0から数えた5は実質6個目ですから、このように処理されたというわけです。
while文は「何回処理を繰り返すか」にこだわった条件設定が得意ですが、for文は「どこからどこまで処理をするか」にこだわった条件設定が得意だと言えるでしょう。