COBOL&x27;s EVALUATE:当其他子句为空时,如何使其为空?
我想我在某个地方读到过,如果没有COBOL&x27;s EVALUATE:当其他子句为空时,如何使其为空?,cobol,Cobol,我想我在某个地方读到过,如果没有而存在其他语句,那么当WHEN子句没有覆盖被求值变量的值时,COBOL应用程序将因求值而崩溃。因此,为了避免崩溃,我想在其他时添加这个空的 在什么情况下有必要这样做?如果有,这种方法正确吗 在什么情况下这是必要的 在任何情况下,对于我所知道的每个COBOL环境(可能是“一些”);并且对于任何COBOL85/2002/2014/future编译器都不是必需的 。。。如果是,这种方法正确吗 不,实际上COBOL 85/2002/2014/future兼容编译器会因为缺
而存在其他语句,那么当WHEN
子句没有覆盖被求值变量的值时,COBOL应用程序将因求值而崩溃。因此,为了避免崩溃,我想在其他
时添加这个空的
在什么情况下有必要这样做?如果有,这种方法正确吗
在什么情况下这是必要的
在任何情况下,对于我所知道的每个COBOL环境(可能是“一些”);并且对于任何COBOL85/2002/2014/future编译器都不是必需的
。。。如果是,这种方法正确吗
不,实际上COBOL 85/2002/2014/future兼容编译器会因为缺少命令语句而引发错误(有些编译器允许将其作为“扩展”[我认为这是一个bug],有些编译器至少会发出警告,有些编译器保持沉默)。
如果有一些“非常奇怪的原因”总是包含,而其他
:使用(几乎没有op)语句继续
作为“语句”
在什么情况下需要这样做
如果编译器配置为在缺少其他
语句时中止,则这是绝对必要的。;-)
否则,在我看来,当其他
语句出现时编程一个,即使只需要一个继续
语句,也是一个很好的做法。您的代码应该如下所示:
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
根据我们都读过的文档,另一个是可选的。如果要对WHEN OTHER子句进行编码,CONTINUE可以用作占位符。这不是必需的,但最好在计算时对WHEN OTHER进行编码。它让代码的读者知道您显式选择处理或忽略哪些条件,而不仅仅是您记得处理的条件。@JimCastro“这对一些人来说是好的做法,对其他人来说是坏的做法——按照团队的规则去做,如果没有规则的话:按照你调整的程序去做,保持简洁;如果它是新的:下定决心”。谢谢你,我需要确认这个疑问。你能详细说明实际上可以配置的任何编译器(配置)吗?WHEN OTHER
子句需要编码吗?
EVALUATE MyValue
WHEN 1
DISPLAY "My value is 1"
WHEN 2
DISPLAY "My value is 2"
WHEN OTHER
CONTINUE
END-EVALUATE.