指定した回数だけ繰り返し処理を行います。
繰り返す回数がわかっていないときは WHILE文(前判定)もしくはREPEAT文(後判定)を使います。
最低1回は実行したい場合は、後判定のREPEAT文を使います。
初期値と終了値が同じ値の場合は一度だけ実行されます。
- 構文
- FOR 変数 = 初期値 TO 終了値 [STEP 刻み値]
処理NEXT
- 引数
- 戻り値
FOR-TO文とは
FOR-TO文(以下FOR文)は繰り返し処理を行う構文で、おもに決められた回数処理を繰り返し行うときに使うことが多いです。
処理の流れ
FOR文は以下のような形式で記述します。
FOR 変数 = 初期値 TO 終了値 STEP 刻み値
処理
NEXT
FOR文の処理の流れは以下のとおりです。
- FOR文に入ったらまず変数に初期値を代入し、終了値・刻み値の値を取得します。刻み値が省略されている場合、+1を指定したことになります。
- 次に変数が終了値を超えていないかを確認します。具体的には刻み値が正数の場合変数 <= 終了値、刻み値が負数の場合変数 >= 終了値を満たすか調べます。
- 手順2を満たしていればループ内に入り、処理を実行します。手順2を満たしていなければNEXTの次に飛びFOR文を抜けます。
- NEXTまで来たらFORに処理を飛ばし変数に刻み値を加算し、手順2に戻ります。
初期値と終了値が同じ値の場合は、ループ内の処理が一度だけ実行されます。
変数 = 初期値をパラメータの初期化、終了値を超えていないかの確認を継続条件、刻み値をパラメータの増減とすると、フローチャートは以下のようになります。
FOR文の使い方
以下はHello World!と5回表示させるプログラムです。
PRINT "Hello World!"
PRINT "Hello World!"
PRINT "Hello World!"
PRINT "Hello World!"
PRINT "Hello World!"
繰り返しが5回であればFOR文を使わなくても書けますが、繰り返す数が多くなればなる程コピーして貼り付けしてとプログラムを書くだけで大変です。また繰り返す数を間違える原因にもなってしまいます。
このように同じ処理が連続する場合は、FOR文を使うことで以下のように簡潔に記述することができます。繰り返す回数が変更になっても終了値を変えるだけで済みます。
FOR i = 1 TO 5
PRINT "Hello World!"
NEXT
- 結果
Hello World! Hello World! Hello World! Hello World! Hello World!
カウンタ変数の使用
FOR文で初期値を代入した変数のことをカウンタ変数といいます。カウンタ変数はループの繰り返す回数を記憶するだけでなく、FOR文内で変数として使うこともできます。
以下はカウンタ変数を出力するプログラムです。
FOR i = 1 TO 3
PRINT i
NEXT
- 結果
1 2 3
カウンタ変数は数値なので計算に使うことができます。以下はカウンタ変数の値を2倍にした値を出力します。
FOR i = 1 TO 5
PRINT i * 2
NEXT
- 結果
2 4 6 8 10
カウンタ変数の値だけでなく文字列と組み合わせることも可能です。
FOR i = 1 TO 5
PRINT i + "回目の処理です。"
NEXT
- 結果
1回目の処理です。 2回目の処理です。 3回目の処理です。 4回目の処理です。 5回目の処理です。
関連記事
- FOR-IN文
- 配列やコレクションなどのグループの各要素に対して繰り返し処理を行います。
- WHILE文
- ループ処理を行います。ループの始めに条件判定を行いループ内で条件を変えないと無限ループになります。条件が合わなければ処理は1度も実行されません。最低1度は処理を実行したい場合はREPEAT-UNTIL文を使います。前判定。
- REPEAT文
- REPEAT文では、条件式がTRUEになるまで処理を行います。WHILE文と同様処理を繰り返す回数がわからないときREPEAT文を使います。ループ内で条件式の変数の値を変えないと無限ループとなるので注意が必要です。 REPEAT文は後判定でループ内の処理を実行してから条件式の確認を行うので、最低一度は処理が実行されます。