制御文について

while文

for文と同じように、繰り返し処理に使用されます。

  while ( cnt < 10 ) {

    printf(“%d回目の処理です。\n”, cnt+1 );

    cnt++;

  }

 

上記の例は、for文で挙げた例と同じ処理を行ないます。条件を満たしている間、処理を繰り返します。for文と異なるのは、自身で値を変更しないため、処理内で値が変わる場合に使用されることが多いです。

  while ( 1 ){

      (処理)

  }

 

この場合は無限ループと言われ、breakなどでループを抜けるルートを作っておかないと、永遠に処理は終わりません。条件分によりbreakを呼び出すようにすることによって、何回処理を行なうかわからないけれど、ある条件になるまで繰り返したいというときに使用されます。また、条件式で「==」を使う場合に、誤って「=」にしてしまうと、コンパイルでもエラーにならず、代入処理はエラーとならないため、結果的に無限ループを生み出す原因となってしまいますので、条件式を記述する場合には注意しましょう。この誤りは、単純なプログラムであれば原因の特定は簡単ですが、複雑なプログラムや大きなプログラムになった場合には、コンパイルでも検出できないため特定が難しくなります。for文と同じく前述の「break」に加えて「continue」も使用することが可能です。

これは決まりではありませんが、C言語は記述の自由性が高いプログラムであるため、インデント(文頭の空白部)を作ることが可能です。一般的には{}内にある処理にインデントをつけることで、プログラムの視野性を高めることができますので、使用することが好ましいです。