あるいは、WHILE~WENDは、BREAKでいつでも抜け出せる事を利用して、
WHILE 1
IF (条件1) THEN
PRINT "処理を実行出来ません。終了します。"
BREAK
ENDIF(以下条件毎に同じ処理)
(処理)
BREAK
WEND
…うーん、ループしない処理なのに、ループ命令を使うというのも美しくないなあ。
ここでGOTO文を使えば、
DEF (関数名)
IF (条件1) THEN
PRINT "処理を行えません。終了します。"
GOTO @END
ENDIF(以下、条件毎に同じ処理)
(各種処理を行う)
@END
END
処理が出来なければ、一番最後に飛ばしてしまえば良いので、多重IF文にならず、非常にスッキリする。
例えばサブルーチン内で、『ある条件の時は、何も処理を行わずにそのまま抜ける』という処理を行う時、構造化プログラミングのスタイルだと、
DEF (関数名)
IF (条件1) THEN
PRINT "処理を行えません。終了します。"
ELSE
IF (条件2) THEN
PRINT "処理を行えません。終了します。"
ELSE
IF (条件3) THEN
PRINT "処理を行えません。終了します。"
ELSE
(処理を行う)
ENDIF
ENDIF
END
…という具合に、多重IF文の嵐になる上、ENDIFが1つでも足りないとエラーの原因になる。