Top > WHILE

WHILEループ文 Edit

WHILEループ文を使うと、条件を満たしている間はいくつかの行を、繰り返し実行します。
ループの流れ
&ref(): File not found: "loop02.jpg" at page "WHILE";

WHILEループ文は以下のように書きます。

WHILE 条件式 DO
     文;

PROCEDURE TEST;
VAR
		i:INTEGER;
BEGIN
		i:=0; {iを初期化する}
		WHILEi<=10 DO { i が10以下ならループを続け、文を実行する}
			i:=i+1; {iに1を加える}
END;
Run(TEST);

FORループ文に似ていますが、ループの打ち切りに回数ではなく条件式を使っている点が違います。
最初に判断しているので、条件によってはループの中の処理を一度も行わない場合もあります。
[文が複数行ある場合]
文が複数行ある場合は BEGINとENDでくくります。

PROCEDURE TEST;
VAR
		i:INTEGER;
BEGIN
		i:=0; {iを初期化する}
		FOR i:=5 TO 10 DO
		WHILEi<=10 DO { i が10以下ならループを続け、文を実行する}
		BEGIN
			Writeln(i);
			i:=i+1; {iに1を加える}
		END;
END;
Run(TEST);

[グループ内での注意]
WHILEループ文を使う上で注意することは、無限ループです。
条件式が真のまま変化しないプログラムを書くと、ループを抜けることができなくなります。この状態を無限ループといいます。
無限ループの例

PROCEDURE TEST;
VAR
		i:INTEGER;
BEGIN
		i:=0; {iを初期化する}
		WHILEi<=10 DO { i が10以下ならループを続け、文を実行する}
		BEGIN
			Writeln(i);
		END;
END;
Run(TEST);

iの値を加算していないので、iの値はいつまでも0のままです。
従って条件式がいつまでも真のままになり、無限ループになります。
条件式に使っている変数の扱いには十分気を付けて下さい。
無限ループになったら、ctriキー(Macの場合はcommandキー)とピリオドキーを同時に押して下さい。
プログラムを強制的に終了させることができます。
ただし、プログラムによっては終了できないときがあります。


リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Sat, 26 Nov 2011 13:25:18 JST (4553d)