🧩今日の学び
・入れ子EVALUATEは「外で大分類 → 内で細分類」という二段ロジックで読むと一気に理解できる
・TRUE を使った内側EVALUATEは“自由な条件式を書くための箱”であり、GRADE分岐とは独立して整理しやすい
・見た目にビビらずインデントの流れを追えば、実態は「外 → 内 → 結果」の一本道で恐ろしくシンプル
係)今日は“地獄の二重底”
——EVALUATEの中にEVALUATEを入れるだ。
な)地獄……すか?大釜地獄という名の温泉地獄ですか?
自分で掘って自分で温泉を掘り当てるやつですか?気持ちいいぐらいですよね?
でも源泉の温度が30度ぐらいだったので、沸かして営業したらそんなの温泉じゃないとか炎上するやつですか?
係)それ地獄か?
な)怖いですねー炎上地獄とか…
EVALUATEの入れ子は“見た目だけ地獄”の正体
係)COBOLの地獄ってのは“見た目”だけだ。
中身は案外ロジカルで優しい。
お前と違ってな。
な)俺ロジカルですよ!マジカルですよ!論理主義ですよ!正解を導き出すプロですよ!
王将行くとき、餃子の王将か大阪王将か悩んだときに、バーミヤンにという結論に達しましたよ。
係)何がロジカルなんだよ。
な)えー、だって近いから。
係)だから、それのどこに論理があるんだよ。
コード全体の構造:外側GRADE、内側SCORE
係)まぁいい、今日のコードだ。
EVALUATE GRADE
WHEN "A"
EVALUATE TRUE
WHEN SCORE > 95
MOVE "Outstanding" TO REMARK
WHEN OTHER
MOVE "Excellent" TO REMARK
END-EVALUATE
WHEN "B"
EVALUATE TRUE
WHEN SCORE > 85
MOVE "Very Good" TO REMARK
WHEN OTHER
MOVE "Good" TO REMARK
END-EVALUATE
WHEN OTHER
MOVE "Needs Improvement" TO REMARK
END-EVALUATE.
な)え、あのちょっとめんどくさいんですけど…
係)仕事をめんどくさいとか言うな。
な)ねーヒント、ヒント!! ヘイ!ヒント、ヒント!! ピッチャービビってる!ヘイヘイヘイ!
…聞いちゃいねーし。なんで行っちゃうの。もう。
で、ってあれ?
単純にEVALUATEが重なってるだけで、別に難しくないんじゃ?
GRADEがAだったら、下に続くと。
そして、SCOREが95より大きかったら、OutstandingをREMARKに入れる。95以下だったら、ExcellentをREMARKに入れる。
GRADEがBだったら、Aのところは無視して、下に続くと。
そして、SCOREが85より大きかったら、Very GoodをREMARKに入れる。
それが85以下だったら、GoodをREMARKに入れる。
そして、AとB以外は、Needs ImprovementをREMARKに入れる。
で終わり。
おむすび
それぞれがインデントされているから、簡単に理解可能やん!
EVALUATE GRADE
WHEN "A"
WHEN "B"
WHEN OTHER
END-EVALUATE.
現実としてはこれだけでしょー。
そしてWHENに再度EVALUATEで条件追加しているだけ。
楽勝すぎ!
すぐビビらせようとするんだから。あんたの怖い顔のほうがビビるっつーの。
あはー!さっくり終わったし、もっかい牛丼食ってこようっと!
係長のワンポイント
入れ子EVALUATEは“外で分類、内で条件精査”という二段ロジックだ。
外側で大枠を決めるから、内側はその範囲だけを評価する安全構造になる。TRUE版の内側は自由度が高く、SCORE > 95 のような条件式を柔軟に書ける。
見た目が増えても、実態は「外→内→結果」の一本道にすぎない。
コードを読むときはインデントを追え──COBOLの入れ子はそれだけで勝てる。

コメント