【COBOL 読み3-2-1】緊急GO TO処理で社長と王様ゲーム

🧩今日の学び
GO TO文は制御構造を無視して処理を飛ばす“非常口”。
・係長いわく「GO TOは社長命令レベル。使うときは覚悟を決めろ」。
・安全なフロー設計こそCOBOLを“現代に繋ぐ鍵”。

今日のコード

       MOVE 1 TO CNT.

       IF CNT = 1
           GO TO STEP-A
       ELSE
           GO TO STEP-B
       END-IF.

       STEP-A.
           DISPLAY "Now in STEP-A"
           GO TO STEP-C.

       STEP-B.
           DISPLAY "Now in STEP-B"
           GO TO STEP-C.

       STEP-C.
           DISPLAY "Now in STEP-C"
           STOP RUN.

なるお)なんかもう、やれとも言わなくなったなー。自由奔放主義と見せかけて、娘さんんには門限16時とか言ってる人だよあの人。仕事に出れないっつーの。

まぁ読みますか…っと。

CNTに入れて、CNTが1だったら、STEP-Aを実行。
Now in STEP-A“を表示してSTEP-Cを実行。”Now in STEP-C“と表示して、終了。STEP-Bはミソッカスですか、そうですか。係長!もっと人の心を持って!

係長)すぐ演劇がはじまるな…。

な)なんちゅーか、GO TOってこんなもんだってのはわかりましたよ。

でも下に進むなら、IF地獄でもEXIT PERFORMで終わらせてもなんか同じじゃないんすか?

GO TO使って飛ばす意味がわからないんですけど⋯

何を選べば正解というか、正解王というか、王様ゲームというか。

王様の言うことはぜったーい!

IF地獄とGO TO王国

係)「GO TOは、“構造”を無視して流れを強制的に変える装置」ってことだ。

IFPERFORM は「構造の中」で分岐・抜ける。

つまり——「筋を通して抜ける」。

PERFORM UNTIL X > 5
    IF ERROR-FLAG = 1
        EXIT PERFORM
    END-IF
    ADD 1 TO X
END-PERFORM

この場合、「PERFORMを終わらせる」っていう筋道がある

呼び出し元にちゃんと“帰る”。

──会社で言うなら「定時で退勤」ってとこだ。

一方で、GO TO は、構造の外にワープする。

「どこへでも行けるけど、二度と戻れない」。
しかも、“呼び出し構造”の存在を無視する。

IF ERROR-FLAG = 1
    GO TO ERROR-HANDLER
END-IF

これ、もし中で10段ネストされてても、GO TO ひとつでぜんぶすっ飛ばして ERROR-HANDLER. に行く。

──会社で言うなら「上司の会議すっ飛ばして社長室に直接突入」といったところだ。

な)こないだ社長室でお茶のんできました。

係)はぁ?お前社長室に何しに行ったんだ?

な)え、おじいちゃんが入ってきたから、社長室に案内したら社長だったってだけですけど。

係)…お前にはあまりかかわらないほうが良さそうだな…

な)えーなんでですか!?

係)なんでもくそもねーから!ったく。

非常階段を使うな!COBOL流・緊急脱出の心得

係)だからCOBOLの世界ではGO TOは「非常階段」扱い。

火事の時だけ使え。

普段の出入りは玄関(PERFORM)でやれ。

構文性質正しい使い方
IF + EXIT PERFORM構造の中での分岐・終了通常のロジック制御
GO TO構造を飛び越える緊急脱出エラー処理、異常終了のみ

な)じゃあつまり、「王様ゲームで全員王様にキッシング!(Kissing)」みたいな命令がGO TOっすね。

係)ドイツか。

な)へ??

係)わかんねーならいいよ!

おむすび

係)ま、まぁ、王様が「GO TO土下座」って言ったら全員すぐやる感じだな。

な)EXIT PARAGRAPH は「やだ!もう帰る!」で、GO TOは「社長が出てこい!」ってことですね。

係)俺に王様ゲームの例えさせといて、まともな例を挙げるなよ!

な)え、まともでした…?

係)もー!

係長のワンポイント

GO TOは「構造を無視して処理を強制的に飛ばす」非常用スイッチだ。
PERFORMEXITは“筋を通って戻る”が、GO TOは“戻らない前提”で飛ぶ。
だからネストの深さも呼び出し元も関係なく、一気に別世界へ行けてしまう。
便利だが、流れは一瞬で壊れ、後から読む人の地図も消える。
GO TOは火事のときだけ使え──普段の出入り口は必ず構造で作れ。

― 目次(読みシリーズ)へ戻る ―

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする