文は通常は記述されている順に実行されますが、プログラムの実行順序を制御する文もあります。そのような文としては、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 文の形式で決まります。