模块 2 · 第 2 课(共 2)课程中的4/10~12 min
模块课程(2/2)
使用 IF 和 EVALUATE 做出决策
COBOL 中的决策主要使用 IF 条件语句和多分支选择结构 EVALUATE (类似于现代语言中的 switch 或 match)来执行。
IF 条件语句
IF 语句的基本语法是:
COBOL
IF condition
statements-if-true
ELSE
statements-if-false
END-IF.在现代 COBOL 版本(COBOL-85 及更高版本)中,语句必须显式以 END-IF. 结尾,而不是仅仅依赖于最后一个句点 .,从而显着减少解析和逻辑错误。
常见条件
- 大于:
>或GREATER THAN - 小于:
<或LESS THAN - 等于:
=或EQUAL TO - 大于或等于:
>=或GREATER THAN OR EQUAL TO - 小于或等于:
<=或LESS THAN OR EQUAL TO
COBOL
IF WS-BALANCE < 0
DISPLAY "OVERDRAWN"
ELSE
DISPLAY "ACCOUNT ACTIVE"
END-IF.评估语句
当我们需要将一个变量与多个离散值进行比较时,嵌套的 IF 语句可能会变得复杂。 EVALUATE 语句通过以干净的方式构建选择来解决这个问题:
COBOL
EVALUATE WS-USER-ROLE
WHEN "ADMIN"
DISPLAY "FULL ACCESS"
WHEN "EDITOR"
DISPLAY "EDIT ACCESS"
WHEN OTHER
DISPLAY "LIMITED ACCESS"
END-EVALUATE.WHEN OTHER:标识后备分支(相当于现代语言中的default或最后的else)。END-EVALUATE.:关闭结构。
自己尝试一下
锻炼#cobol.m2.l2.e1
尝试:0加载中...
编写一个 IF-ELSE-END-IF 块来检查变量 WS-USER-AGE 是否大于或等于 18。如果为 true,则打印“ADULT”,否则使用 DISPLAY 打印“MINOR”。
正在加载编辑器...
显示提示
使用 >= 进行比较,使用 DISPLAY 进行输出,使用 END-IF。 (点位于块的末尾)。
3 次尝试后可用的解决方案
锻炼#cobol.m2.l2.e2
尝试:0加载中...
完成 EVALUATE 结构以检查 WS-STATUS 变量。如果值为“A”,则打印“ACTIVE”,如果为“I”,则打印“INACTIVE”,否则对于任何其他值,则打印“UNKNOWN”。
正在加载编辑器...
显示提示
编写每个 WHEN 分支,后跟其 DISPLAY,并使用 WHEN OTHER 来处理回退。
3 次尝试后可用的解决方案