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文は大変便利な命令ですが、多用するとプログラムの流れがわかりにくくなる恐れがあります。


リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS