|
Top > FOR
**FORループ文 [#t150a56c]
FORループ文を使うと、いくつかの行を一定の回数だけ繰り返させることができる。
ループの流れ
&ref(loop01.jpg,,50%);
FORループ文は以下のように書きます。
FOR 変数:=初期値 TO 終了値 DO
文;
※変数は INTEGER型でなければいけません。
例
PROCEDURE TEST;
VAR
i:INTEGER;
BEGIN
FOR i:=5 TO 10 DO
Writeln(i);
END;
Run(TEST);
''[文が複数行ある場合]''
文が複数行ある場合は BEGINとENDでくくります。
例
PROCEDURE TEST;
VAR
i:INTEGER;
BEGIN
FOR i:=5 TO 10 DO
BEGIN
Writeln(i);
Writeln(i*2);
Writeln(i*4);
END;
END;
Run(TEST);
''[グループ内での注意]''
ループ中の文でカウンタ変数の値を変更してはいけません。
プログラムが正常に動かない可能性があります。
悪い例
PROCEDURE TEST;
VAR
i:INTEGER;
BEGIN
FOR i:=5 TO 10 DO
BEGIN
Writeln(i);
i:=i-1; {カウンター変数の値を変更している}
END;
END;
Run(TEST);
また初期値と終了値のいずれにもカウンタ変数を含めてはいけません。
悪い例
PROCEDURE TEST;
VAR
i:INTEGER;
BEGIN
FOR i:=5 TO i DO {終了時にカウンター変数を使っている}
Writeln(i);
END;
Run(TEST);
GOTO文
指定した行にジャンプしたい場合にGOTO文を使います。
GOTO文をプログラムの中で使うには、最初にラベル宣言をしなければなりません。
ループの流れ
&ref(loop04.jpg,,50%);
''[ラベル宣言]''
プログラム宣言部の次の2行目にラベル宣言文を書きます。
LABELの後にスペースをあけて、プログラムの中で使用されるラベル番号を配列し、カンマ(,)で区切ります。
ラベル番号は 0〜9999までの整数が使えます。
例
LABEL 1,2,3
''[GOTO文の書き方]''
GOTO文の後にスペースをあけて、ラベル番号を書きます。
例
GOTO 1;
(GOTO文を使ったプログラム例)
PROCEDURE TEST;
LABEL 1,2; {ラベル宣言}
VAR
i:INTEGER;
BEGIN
x:=IntDialog('数字を入力してください','0') ;
IF x<10 THEN
GOTO 1; {xの値が10未満ならば、1にジャンプする}
Message('xの値は10以上です');
GOTO 2; {2にジャンプする}
1:Message('xの値は10未満です');
2:END;
Run(TEST);
GOTO文は大変便利な命令ですが、多用するとプログラムの流れがわかりにくくなる恐れがあります。
|