自由形式構文 | (許可されていない - LEAVE、LEAVESR、ITER、 および RETURN などの他の命令コードを使用) |
コード | 演算項目 1 | 演算項目 2 | 結果フィールド | 標識 | ||
---|---|---|---|---|---|---|
GOTO | ラベル |
GOTO 命令では、プログラムがそのプログラム内の別の演算命令に進む (ま たは分岐する) ように指示して、演算命令をスキップすることができます。TAG (タグ)命令は、GOTO 命令の宛先を指定します。TAG は、GOTO の前または後に指定することができます。 GOTO 命令は次の分岐を指定するために使用します。
メイン・プロシージャーのサブルーチン内の GOTO は、同じサブルーチン、明細演算、 または合計演算の中の TAG に出すことができます。 サブプロシージャーのサブ ルーチン内の GOTO は、同じサブルーチン内またはサブプロシージャーの本体 内の TAG に出すことができます。
RPG IV 論理サイクルの一部から別の部分に分岐すると、無限ループに入ることがあります。 ユーザーの責任で、ユーザー・プログラムの論理から好ま しくない結果が生じることのないようにしてください。
演算項目 2 には、プログラムの分岐先のラベルを入れなければなりません。 このラベルは、TAG または ENDSR 命令の演算項目 1 に入れます。 ラベルは固有 の記号名でなければなりません。
詳細については、分岐命令を参照してください。
*...1....+....2....+....3....+....4....+....5....+....6....+....7...+.... CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq.... * * If indicator 10, 15, or 20 is on, the program branches to * the TAG label specified in the GOTO operations. * A branch within detail calculations. C 10 GOTO RTN1 * * A branch from detail to total calculations. C 15 GOTO RTN2 * C RTN1 TAG * C : C : C : C 20 GOTO END * C : C : C : C END TAG * A branch within total calculations. CL1 GOTO RTN2 CL1 : CL1 RTN2 TAG
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.