制御文について
while文
for文と同じように、繰り返し処理に使用されます。
while ( cnt < 10 ) {
printf(“%d回目の処理です。\n”, cnt+1 );
cnt++;
}
上記の例は、for文で挙げた例と同じ処理を行ないます。条件を満たしている間、処理を繰り返します。for文と異なるのは、自身で値を変更しないため、処理内で値が変わる場合に使用されることが多いです。
while ( 1 ){
(処理)
}
この場合は無限ループと言われ、breakなどでループを抜けるルートを作っておかないと、永遠に処理は終わりません。条件分によりbreakを呼び出すようにすることによって、何回処理を行なうかわからないけれど、ある条件になるまで繰り返したいというときに使用されます。また、条件式で「==」を使う場合に、誤って「=」にしてしまうと、コンパイルでもエラーにならず、代入処理はエラーとならないため、結果的に無限ループを生み出す原因となってしまいますので、条件式を記述する場合には注意しましょう。この誤りは、単純なプログラムであれば原因の特定は簡単ですが、複雑なプログラムや大きなプログラムになった場合には、コンパイルでも検出できないため特定が難しくなります。for文と同じく前述の「break」に加えて「continue」も使用することが可能です。
これは決まりではありませんが、C言語は記述の自由性が高いプログラムであるため、インデント(文頭の空白部)を作ることが可能です。一般的には{}内にある処理にインデントをつけることで、プログラムの視野性を高めることができますので、使用することが好ましいです。