while 文
if文を理解していれば、while文を理解することも簡単です。while文の構文はelseを持たないif文と同じで、与えられた式が0以外であれば、対象の文を繰り返し実行し続けるという性質を持ちます。if文の場合と同様に、繰り返し対象に文を指定するため、複合文を使って階層的な構造を作ることができます。while文の中に、異なる繰り返し文やif文などを指定することも可能です。
while ( 式 ) 文
while文は、whileキーワードに続いて ( ) の中に文を繰り返し実行するかどうかを判断する制御式を指定します。式の結果が0以外であれば、繰り返し処理の本体となる文を実行します。
while文の流れは、最初に式を評価し、式の結果が0以外であれば繰り返し対象の文を実行します。文が実行されると再び式を評価し、文を繰り返し実行します。これを式の結果が0になるまで繰り返されます。式に、0にならないような値を指定した場合、反復処理から抜け出せなくなってしまうので注意してください。
サンプル01
#include <stdio.h>
int main(void)
{
while (0) printf("実行されない文\n");
while (1) printf("永遠に実行され続ける文\n");
return 0;
}
実行結果
サンプル01は、while文の働きを調べるために、制御式に0と1の定数を与えています。本来ならば、このようなプログラムはあり得ません。制御式に0を指定した場合は、対象の文は絶対に実行されることはありません。1を与えた場合、反復処理から抜け出す方法を与えない限り、プログラムは永遠と文の実行を繰り返し続けてしまいます。サンプル01を実行すると、制御式に1を与えたwhile文の繰り返し対象文が、終わることなく繰り返し実行され続けます。このプログラムを終わらせる手段は、強制終了以外にありません。