C言語を習得する

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




ページのTOPへ






メニュー