ALTER ステートメントは、GO TO ステートメントの中に指定されている制御の転送先を変更します。
ALTER ステートメントは、非構造化プログラミングの使用を助長します。 EVALUATE ステートメントには ALTER ステートメントと同じ機能がありますが、 プログラムの構造化に役立ちます。
ALTER ステートメントは、プロシージャー名-1 によって指定された段落中の GO TO ステートメントを修正します。 この修正された GO TO ステートメントが以降に実行されると (場合によっては複数)、制御はプロシージャー名-2 に移されます。
ALTER ステートメントの実行前に、プロシージャー名-1 で指定した段落に制御が達すると、 GO TO ステートメントは、その GO TO ステートメント中に指定されている段落に制御を移します。 しかし、ALTER ステートメントの実行後は、次に、プロシージャー名-1 に指定された段落に制御が達するとき、GO TO ステートメントはプロシージャー名-2 に指定された段落に制御を移します。
ALTER ステートメントは、プログラム・スイッチとして動作します。例えば、 初期設定時にはある一連のステートメントを実行し、 大量のファイル処理の実行中は別の一連のステートメントを実行するといったことが可能です。
INITIAL 属性を持つプログラム内で修正された GO TO ステートメントは、 プログラムの実行が開始されるたびに初期状態に戻されます。
ALTER ステートメントを、RECURSIVE 属性が指定されたプログラム、メソッド、または THREAD オプションを指定して コンパイルされたプログラムでは使用しないでください。
独立セグメントでコード化された GO TO ステートメントは、異なる優先順位番号 が指定されたセグメントの ALTER ステートメントによって参照されないようにする必要があります。 ALTER ステートメントの他の使用方法はすべて有効であり、ALTER が参照する GO TO ステートメントが固定セグメント中にある場合でも実行されます。
異なる優先順位番号 を持った独立セグメントにより ALTER で変更された GO TO を含む別の独立セグメントに制御が移されるとき、独立セグメント中にある変更された GO TO ステートメントは、 それ自体の初期状態に戻ります。