Pascal-goto-statement

提供:Dev Guides
2020年6月22日 (月) 17:27時点におけるMaintenance script (トーク | 投稿記録)による版 (Imported from text file)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索

パスカル-gotoステートメント

Pascalの goto ステートメントは、同じ関数内でgotoからラベル付きステートメントへの無条件ジャンプを提供します。

-プログラムの制御フローを追跡するのが難しくなり、プログラムの理解と修正が困難になるため、プログラミング言語では goto ステートメントを使用しないでください。 gotoを使用するプログラムは、gotoを必要としないように書き換えることができます。

構文

Pascalの goto ステートメントの構文は次のとおりです-

goto label;
   ...
   ...
label: statement;

ここで、_label_は、1から9999までの値の符号なし整数ラベルでなければなりません。

流れ図

パスカルgotoステートメント

次のプログラムは、概念を示しています。

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 ステートメントを複合ステートメントで使用して、複合ステートメントから制御を移すことができますが、複合ステートメントに制御を移すことは違法です。