サンプルプログラム cntl3.c
(8-3)whileループ
whileループのフォーマットは、
while ( [式] ) (処理);
処理が複数行にわたる場合には、
while ( [式] ) { (処理1) (処理2) ----- (処理n) }
のように記述します。
[式]の値が真(true)のとき(処理)を実行します。
[式]の値が偽(false)になったらループを抜けて次の処理を実行します。
#include <stdio.h> void main( void ) { int i; i = 1; while( i <= 10 ) { printf( "i = %d\n", i ); i++; } }
上記プログラムの実行結果
i = 1 i = 2 i = 3 i = 4 i = 5 i = 6 i = 7 i = 8 i = 9 i = 10
まず、ループカウンタ i を1で初期化し、i の値が10以下の間だけループし、i の値を出力するプログラムです。 whileループの動作がお分かり頂けたでしょうか?
サンプルプログラム cntl3a.c
continue文とbreak文
continue文はループの先頭へ戻る文で、break文はループから脱出する文です。
プログラムを見た方が早いと思いますのでご覧ください。
#include <stdio.h> void main( void ) { int i; i = 1; while( i <= 10 ) { if( i == 1 ) { // ① i++; // これを忘れると無限ループになってしまいます。 continue; } if( i > 5 ) break; // ② printf( "i = %d\n", i ); i++; } }
上記プログラムの実行結果
i = 2 i = 3 i = 4 i = 5
まず①のif文ですが、iが1のときiをインクリメントしてからcontinue文が実行されます。
continue文はループの先頭(この場合while文)に戻ります。
printf文は実行されませんので i = 1 は出力されません。
次に②ですが、iが5より大きくなった時break文が実行されます。
break文はwhileループの外に脱出する文なのでこの場合次の処理が無く、プログラムは終了します。