Quit

QUITがFORの後の行に現れる場合を除いて、QUITコマンドは、DO、XECUTE、外部関数または特殊変数によって初期化される現在のGT.M呼び出しスタックレベルの実行を終了し、次の "低" レベルに制御を戻します。この場合、QUITはNEW、または、パラメータパッシングにより、現在のレベルでスタックの値を復元します。 QUITコマンドは、同じ行で最も近いFORコマンドで終了します。 Mは、FORが最も異なっている、DO、FOR、XECUTE、外部関数($$)を終了するために、QUITコマンドをオーバーロードすることに、注意してください。

QUITコマンドのフォーマットは:

Q[UIT][:tvexpr] [expr | *lname | *lvn]

QUITの例

例:

     Do A
     Quit
A    Write !,"This is label A"

ラベル Aに先行する行での明示的なQUITは、行 A が2回の実行することを防ぎます。ラインAでのサブルーチンは、ルーチンの終了時に暗黙のQUITで終了します。

例:

       Write $$ESV
        Quit
ESV()
        QUIT "value of this Extrinsic Special Variable"

ラベルESVが(空である)引数リストがあるため、GT.Mは、唯一正当的に、外部呼び出しでそのラベルに到達することができます。2行目のQUITは、誤ってESV ラベルの行 "を通って落ちる" ことから実行を防ぎます。ESVは特殊変数を実装するサブルーチンを識別するので、ESVの後の行のQUITは、外部の値を提供する引数を持っています。

例:

Set x="" For  Set x=$Order(^BAL(x)) Quit:x]]"AR5999"!'$Length(x)  DO STF

後置条件QUITは、FORループを終了します。それには引数がないので、QUIT後の2つのスペースに注意してください。

inserted by FC2 system