🧩今日の学び
・EXIT EVALUATE=途中脱出、END-EVALUATE=文法の終点という本質的な違いを理解。
・EXIT は“早退届を出す不良”として、制御構造の流れを乱さない適切な脱出手段である。
・EVALUATE 内で EXIT を濫用すると可読性が崩壊するため、「必要な一度だけ」が基本作法。
なるお)そういえばEXIT EVALUATEとEND-EVALUATEは同じような意味になるんすよね?
係長)お前の口からそんな真面目な言葉が聞ける日がくるとはな…
な)どういう!?
オールレーズンくれたら、いつだって真面目になりますよ?
係)意外と渋いな…。じゃなくて、お菓子なくても真面目にやれよ。
結論から言うと「似てるけど、まったく同じじゃない」
EXITとENDの違い:早退と授業終了の関係で理解する
✅ EXIT EVALUATE
・途中で処理を打ち切る「脱出命令」
・実行中に出会ったら、その瞬間に END-EVALUATE までジャンプして抜ける
つまり「今このEVALUATEもう終わり!」って実行時に抜けるってわけだ。
✅ END-EVALUATE
「ここまでがEVALUATEブロックです」と示す文法上の終わり
実際に抜ける命令じゃなく、構文の終点を示すだけ
つまり END-EVALUATE は文法のカギカッコの閉じみたいなもので、EXIT EVALUATE は実行中にその閉じまでスキップする命令になるわけだ。
例えるなら…
END-EVALUATE
「授業終了のチャイム」
EXIT EVALUATE
「早退届を出して途中で帰る」
ってとこだ。
EXITは“筋を通す不良”:COBOL的に正しい脱出とは
な)はー、ENDは最後までいたので真面目くん。
EXITは不良生徒ってかんじっすね。でも早退届は出すという、偏差値高い学校で中途半端な不良ってやつですね!
係)お前うまいこと言うなそれ。
まさにその通りだ。EXITは「授業中に寝るようなバカ」じゃなくて、ちゃんと「先生、体調悪いんで帰ります!」って筋は通してる不良なんだよ。
な)先生に早退届出すとかいやですねー。
めっちゃ睨んでるのに手には早退届もってるとか、ぷふー!。
おい先公!早退届早く受け取れよ!
とかやってんのかな。くはー恥ずかしー!
係)でもな、その不良が教室に3人も4人もいたら、授業めちゃくちゃになるだろ?
な)なりまくりですよ!連続して早退届とか、鬼笑もんですよ!鬼笑で授業になりませんって!!
係)そう。
だから、EXITは一人だけにしとけ。
それがCOBOL学校の“秩序”。
だが、“真面目なだけ”のプログラムも、つまらん学校になるってことだ。
おむすび
な)なんか良さげな解釈ってかんじでしたね!
でもなんで学校で例えたんです?
係)え…。
いや、その、あ、あくまでも例えだからな!
な)実録!ってやつですか?
もしや係長ってば、進学校の不良生徒だったんですか?ニヤニヤ
係)きょ、今日はここまで!
係長のワンポイント
EXIT EVALUATE は“実行中にその場で抜ける”早退、END-EVALUATE は“文法上の終点”でしかない。EXIT が多すぎると流れが飛び飛びになり、読者が現在位置を見失う危険が高い。
逆に EXIT をまったく使わないと、不要な WHEN が増えロジックが冗長になる。
理想は「必要な場所に一度だけ」。脱出は一点突破、構造は整然──これがCOBOLの作法だ。ENDは囲い、EXITは意思──この違いを理解すると分岐が一気に綺麗に書ける。

コメント