🧩今日の学び
・EXIT EVALUATE は「条件を満たした瞬間に評価を打ち切る」緊急脱出口である。
・EVALUATE ALSO は“表構造”、EXIT は“流れ制御”──係長の言うとおり、思想そのものが違う。
・次回は「どの条件分岐をどの書き方で実装すべきか」という“選択の基準”へ踏み込む。
なるお)係長、俺なんか楽しくなってきましたよ!
だから、はい!はいはい!!さっさとコード出す!ゾーン抜けちゃうから急いで!
係長)なんで偉そうになってんだよ。
ほんとにゾーン入ってんのか…、ゾーンに入っているやつがそんなこと言わねーだろ。
ま、いいや本日のお題「EXITで地獄からの脱出」編、いくぞ。
MOVE "B" TO GRADE
MOVE 78 TO SCORE
MOVE 88 TO ATTEND
EVALUATE GRADE
WHEN "A"
IF SCORE >= 90 AND ATTEND >= 90
MOVE "Honor Student" TO TITLE
EXIT EVALUATE
END-IF
MOVE "Achiever" TO TITLE
WHEN "B"
IF SCORE >= 80 AND ATTEND >= 85
MOVE "Steady Worker" TO TITLE
EXIT EVALUATE
END-IF
IF SCORE >= 70 AND ATTEND < 85
MOVE "Average" TO TITLE
EXIT EVALUATE
END-IF
MOVE "Needs Effort" TO TITLE
WHEN OTHER
MOVE "Needs Effort" TO TITLE
END-EVALUATE.
な)GRADEがAのとき、SCOREとATTENDのどちらも90以上だったら、Honor StudentをTITLEに入れる。
EXIT EVALUATEで、EVALUATEを抜けるってことになるよね。つまり、その下の処理は全無視できると。
Aじゃなければ、Bにいくというだけっすよね?どっちでもなかったら、その処理をするだけ。
結局、書き方としては、前にやった下の書き方とどっちがいいんです?
EVALUATE GRADE ALSO TRUE ALSO TRUE
WHEN "A" ALSO SCORE >= 90 ALSO ATTEND >= 90
MOVE "Honor Student" TO TITLE
WHEN "B" ALSO SCORE >= 80 ALSO ATTEND >= 85
MOVE "Steady Worker" TO TITLE
WHEN "B" ALSO SCORE >= 70 ALSO ATTEND < 85
MOVE "Average" TO TITLE
WHEN OTHER
MOVE "Needs Effort" TO TITLE
END-EVALUATE.
係)お前の理解はかなり正しいぞ。
EXIT EVALUATEの正体:条件成立の瞬間に“逃げる”命令
EXIT EVALUATE は、その時点で評価処理を打ち切る命令だからな。
残りのWHENや下の処理はスルーして、END-EVALUATE. までジャンプする感じだ。
WHEN "A"
IF SCORE >= 90 AND ATTEND >= 90
MOVE "Honor Student" TO TITLE
EXIT EVALUATE
END-IF
MOVE "Achiever" TO TITLE
だからこのように書くと、「条件を満たした瞬間に終了」=それ以降の“Achiever”処理が無視されるというわけだ。
そして比較したとき、どっちがいいのかってはなしだが、実はどちらも正解だ。
もっというと、用途と読みやすさで使い分けるってのが正解だ。
IF+EXIT方式の特徴:途中脱出できる柔軟性と“迷子リスク”
① EXIT EVALUATE 方式
EVALUATE GRADE
WHEN "A"
IF SCORE >= 90 AND ATTEND >= 90
MOVE "Honor Student" TO TITLE
EXIT EVALUATE
END-IF
MOVE "Achiever" TO TITLE
...
END-EVALUATE
- 柔軟に途中脱出できる
- ✅ ネスト構造(
IF中IF)でも「もういいや」って抜けられる - ❌
EXIT多用すると「どこで抜けたかわからん」地獄になる
つまり、“途中で抜けたいときだけ”に使うものであって、条件が複雑で、WHENでは書けない場合に便利。
ALSO方式の特徴:表で整理する“条件マトリクス”の世界
② ALSO(多項目EVALUATE)方式
EVALUATE GRADE ALSO TRUE ALSO TRUE
WHEN "A" ALSO SCORE >= 90 ALSO ATTEND >= 90
MOVE "Honor Student" TO TITLE
WHEN "B" ALSO SCORE >= 80 ALSO ATTEND >= 85
MOVE "Steady Worker" TO TITLE
WHEN "B" ALSO SCORE >= 70 ALSO ATTEND < 85
MOVE "Average" TO TITLE
WHEN OTHER
MOVE "Needs Effort" TO TITLE
END-EVALUATE
- 条件が並列的にきれいに見える
- ✅
EXIT不要、構造的で安全 - ❌ 条件が少しでも複雑になると、書き換えが面倒
“表で整理できる条件”なら絶対こっちが見やすい。
おむすび
つまりだな——
IF+EXITは、流れ制御型(手続き思考)EVALUATE ALSOは、条件マトリクス型(表思考)
どっちを選ぶかは、「お前がその日、何を大事にしたいか」で変わる。
というか…お前寝てんのか?
な)ま、へ、寝てないっしゅよ!
係)よだれ垂れてんだよ!
係長のワンポイント
EXIT EVALUATE は“その場で評価を打ち切る”強制終了ボタンだ。
条件式が複雑で WHEN だけでは表現しにくい時に威力を発揮する。
ただし多用すると「どこで抜けたか」が読めなくなり、未来の自分が地獄を見る。
一方ALSO方式は“途中脱出なしの構造的な分岐”で、安全性と可読性が圧倒的に高い。
途中離脱が必要なら EXIT、整理された表構造で書けるなら ALSO──これが正しい使い分けだ。

コメント