サンプルプログラム 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ループの外に脱出する文なのでこの場合次の処理が無く、プログラムは終了します。