実行順序を変更する文

文は通常は記述されている順に実行されますが、プログラムの実行順序を制御する文もあります。そのような文としては、GOTO (文ラベルとともに使用)、IF、および DO があります。

GOTO 文は、現在のプロシージャまたは別のアクティブなプロシージャ内のラベル付きの文に制御を移します。一般的な形式は次のとおりです。

GOTO label–reference[OTHERWISE];

または

GO TO label–reference[OTHERWISE];

詳細は次のとおりです。

label–reference は、ラベル定数またはラベル値に評価される式です(ラベル値はプログラム内の文を示します)。次に例を示します。

A = 5; 
   GOTO L2;
L1:
   B = 7;
     .
     .
     .
L2:
   B = 4;

この例では、A には 5 が割り当てられ、B には 4 が割り当てられます。ラベル L1 で始まる文は、GOTO 文によってラベル L1 に制御が移った場合にのみ実行できます。

ラベルはプログラム内の特定の位置を表すのに便利ですが、ラベルが多すぎるとプログラムがわかりにくくなり、一般に修正も難しくなります。複合文の IF および DO を使用すると、ラベルおよび GOTO を使用せずに (またはそれらの使用を最小限に抑えて) 文の実行順序を制御することができます。

DO 文は、DO 文とそれに対応する END 文の間に記述されたすべての文を実行します。それらの文が実行される回数は DO 文の形式で決まります。