You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

COBOL中EVALUATE语句执行后控制权传递位置咨询

COBOL EVALUATE语句控制权流转说明

在COBOL中,EVALUATE语句的核心行为是匹配到第一个符合条件的WHEN子句后,执行其内部代码,随后直接跳出整个EVALUATE结构,控制权会转移到END-EVALUATE之后的第一条语句(也就是你代码里的READ语句),不会停留在END-PERFORM之后继续处理后续的WHEN分支。针对你问的三种场景,具体流转如下:

  • 当TXN-CODE为'A'时:执行完PERFORM 1000-ADD-RECORD THRU 1000-ADD-RECORD-END后,直接跳转到END-EVALUATE后的READ语句,不会再检查后续的WHEN条件。
  • 当TXN-CODE为'C'时:执行完PERFORM 1000-UPDATE-RECORD THRU 1000-UPDATE-RECORD-END后,同样直接跳转到END-EVALUATE后的READ语句。
  • 当触发OTHER分支时:执行完WRITE ERROR-RECORD FROM WS-ERROR-RECORD后,控制权依然直接转移到END-EVALUATE后的READ语句。

需要注意的是,这和你之前遇到的SEARCH语句行为不同——SEARCH在匹配后若未使用CONTINUE或EXIT,可能会继续处理后续逻辑,但EVALUATE是「匹配即退出」的逻辑,这是COBOL标准定义的行为,也是这类分支语句的常规设计。

内容的提问来源于stack exchange,提问作者NicholasM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 20:10:10