|
Top > WHILE
**WHILEループ文 [#y7323fda] WHILEループ文を使うと、条件を満たしている間はいくつかの行を、繰り返し実行します。 ループの流れ &ref(loop02.jpg,,50%); 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キー)とピリオドキーを同時に押して下さい。 プログラムを強制的に終了させることができます。 ただし、プログラムによっては終了できないときがあります。 |