Pascal-goto-statement
提供:Dev Guides
パスカル-gotoステートメント
Pascalの goto ステートメントは、同じ関数内でgotoからラベル付きステートメントへの無条件ジャンプを提供します。
注-プログラムの制御フローを追跡するのが難しくなり、プログラムの理解と修正が困難になるため、プログラミング言語では goto ステートメントを使用しないでください。 gotoを使用するプログラムは、gotoを必要としないように書き換えることができます。
構文
Pascalの goto ステートメントの構文は次のとおりです-
goto label;
...
...
label: statement;
ここで、_label_は、1から9999までの値の符号なし整数ラベルでなければなりません。
流れ図
例
次のプログラムは、概念を示しています。
program exGoto;
label 1;
var
a : integer;
begin
a := 10;
( *repeat until loop execution* )
1: repeat
if( a = 15) then
begin
( *skip the iteration* )
a := a + 1;
goto 1;
end;
writeln('value of a: ', a);
a:= a +1;
until a = 20;
end.
上記のコードをコンパイルして実行すると、次の結果が生成されます-
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 16
value of a: 17
value of a: 18
value of a: 19
次のことに注意してください-
- Pascalでは、すべてのラベルは定数と変数の宣言の前に宣言する必要があります。
- if および goto ステートメントを複合ステートメントで使用して、複合ステートメントから制御を移すことができますが、複合ステートメントに制御を移すことは違法です。