for文を使った繰り返し処理

繰り返し処理を行う方法の一つが for 文です。 while 文や until 文は条件式が真か偽かで繰り返しを行いましたが、 for 文では指定したオブジェクトから繰り返しのたびに値を取り出し、値がなくなるまで繰り返しを行います。ここでは Ruby で for 文を使った繰り返し処理を行う方法について解説します。

(Last modified: )

for文を使った繰り返し処理

for 文を使用すると繰り返し処理を行うことができます。書式は次の通りです。

for 変数 in オブジェクト do
  実行する処理1
  実行する処理2
end

※「do」は省略可能です。

for 文では繰り返しが 1 回行われるたび、オブジェクトに対して eachメソッドを実行し取得した要素を変数に代入します。よって for 文で指定できるオブジェクトは each メソッドを持ったオブジェクトでなければなりません。例えば配列やハッシュ、範囲オブジェクトなどが該当します。

例えば次のように使います。

for num in 1..3 do
  puts("num = " + num.to_s)
end
print("End")

1..3 は範囲オブジェクトと呼ばれるものです。 for 文の中で指定されると最初の値から最後の値までを順に要素として取り出しながら繰り返し処理を行います。

※ 範囲オブジェクトについて詳しくは「範囲オブジェクトを繰り返し処理の中で利用する」を参照されてください。

実際の実行される流れは次のようになります。

 1) 範囲オブジェクトから「1」を取り出し変数「num」に代入
 2) 変数「num」の値を出力
 3) 「end」まで達したので再度「for」文の先頭へ移動
 4) 範囲オブジェクトから「2」を取り出し変数「num」に代入
 5) 変数「num」の値を出力
 6) 「end」まで達したので再度「for」文の先頭へ移動
 7) 範囲オブジェクトから「3」を取り出し変数「num」に代入
 8) 変数「num」の値を出力
 9) 「for」文が終了
10) 「End」を出力

このように for 文ではあらかじめ指定したオブジェクトから要素を全て取り出すと繰り返しは終了します。その為、 while 文や until 文のように条件式を変化させるような処理は必要ありません。

サンプルコード

では簡単なプログラムで確認してみます。

# encoding: UTF-8

puts("繰り返し開始")

for num in 1..3 do
  puts("num = " + num.to_s)
end

puts("繰り返し終了")

下記のように実行して下さい。

for文

-- --

Ruby で for 文を使った繰り返し処理を行う方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。