6.3 for によるループ

ある変数が 1 から 100 までひとつずつ変化するあいだ繰り返すような処理を書くには for 文が便利です。

  for( a=1; a <= 100; a++ ) {
    .... (目的の処理)
  }

for に続く ( ) の中には文を三つ書きます。(二つの ; セミコロンで三つの文に区切られている点に注目)
一文めが初期処理、二文めが条件判定記述、三文めが毎回処理です。処理の流れは以下のようになります。

  1. a に 1 が代入され、
  2. a が 100 以下かどうかを判定し、条件が成立すれば(この例では最初 a は 1 なので必ず成立する)
  3. for( ) に続く { } のブロックを実行し、
  4. 最後に自動的に a++ によって a に 1 加算し、
  5. ループする(つまり 2. に処理が戻る)

for によるループ

for によるループ

for に続く ( ) の中で使う変数は必ずしも一つに揃える必要はなく、単に初期処理、条件判定、毎回処理の三つの処理だと考えて下さい。これは for( ) が while によるループの特殊な形であると考えることでわかりやすくなるでしょう。
つまり for( ) は以下のような while() による記述を一行で書けるよう変形したものなのです。

  a=1;
  while( a <= 100 ) {
    ... (目的の処理)
    a++;
  }

for( ) のカッコの中に書かれるのは正確には文ではなく式と言うべきです。条件判定記述は文ではなく式です。条件判定文は既に <> で示したように if を用いて書きます。for( ) の二番目の条件判定記述はこの if 文の ( ) の中の条件式そのものです。対して一番目の初期処理、三番目の毎回処理は文(代入文)に見えますが、これも式です。C では代入文は代入式とも呼ばれ、a=10; といった代入処理自体が計算結果をもった式として処理されます。


Yutaka Yasuda (yasuda@bakkers.gr.jp)