EVALUATE MyValue
WHEN 1
DISPLAY "My value is 1"
WHEN 2
DISPLAY "My value is 2"
WHEN OTHER
* Actually I don't need to do anything
END-EVALUATE
Run Code Online (Sandbox Code Playgroud)
我想在某处读到 COBOL 应用程序会因为EVALUATE
whereWHEN
子句不包含评估变量的值而崩溃,如果没有WHEN OTHER
语句存在。所以,为了避免崩溃,我想添加这个空的WHEN OTHER
.
在什么情况下需要这样做,如果需要,这种方法是否正确?
什么情况下需要这样...
在任何情况下,我所知道的每个 COBOL 环境(可能是“一些”);并且对于任何 COBOL 85/2002/2014/未来编译器都不是必需的。
...如果是这样,这种方法是否正确?
不,实际上符合 COBOL 85/2002/2014/future 的编译器会因为缺少命令语句而引发错误(有些编译器允许将其作为“扩展”[我会说这是一个错误],有些至少警告,有些保持沉默)。
如果有一些“非常奇怪的原因”总是包含WHEN OTHER
:使用(几乎无操作)语句CONTINUE
作为“语句”。