ループ3兄弟、いちばんはじめは「for文」
for文は、あらかじめ繰り返しの回数が決まっている場合に便利な命令です。
for文の文法は、以下のとおりです。
for ( 初期処理 ; 条件 ; 更新処理 ){ 実行文1; 実行文2; : }
「初期処理」は、最初に1回だけ実行します。ループ処理には、「何回くりかえしたか」を数えるためのカウンタ変数(回数を数えるための変数)が必要です。通常は、この初期処理の場所でカウンタ変数の初期化を行います。
「条件」は、if文のときと同じです。通常はカウンタ変数に対する比較を記述します。
最後の「更新処理」は、ループを1回繰り返すごとに毎回実行する処理を記述します。これも通常はカウンタ変数を更新する処理を記述することが多いです。
for文の動作の様子を図1に示します。
以下に簡単な具体例(プログラム)を示しますので、図1と対比してみてみましょう。
main() { int i; int Val; Val = 1; for ( i = 0 ; i < 4 ; i = i + 1 ){ Val = Val * 2; } }
このプログラムでは、変数iをループ回数のカウンタに使って、変数Valを2倍にする処理を繰り返します。ループを抜けると、変数Valは2のべき乗の値になります。
まず、「初期処理」はi = 0
です。ここでループ変数を初期化しています。次に、「条件」はi < 4
、つまりカウンタ変数iが4より小さい間条件が成立してfor文が実行され続けます。その後ろのi = i + 1
が「更新処理」です。実行文はVal = Val * 2;
の1文だけです。
図1の処理の流れに従ってfor文の動作を追ってみましょう。まず初期処理で変数iが0に初期化されます。次に条件をみると、iは0なので0 < 4
が成立します。したがって、実行文Val = Val * 2
の実行を行います。次に更新処理、ここではカウンタ変数iに1を加えます。iは1になって再び条件の判断へいきます。1 < 4
なので条件は成立し、また実行文の実行を行います。これをくりかえすと、更新処理でiが4になるときがやってきます。すると条件の判断で、4 < 4
は不成立となってfor文を終了します。実行文は都合4回実行されますので、Valは2の4乗で16になるはずです。