哪种逻辑更好或更有效:
IF VAR-A = FALSE
MOVE VAR-C TO VAR-B
ELSE
MOVE VAR-A TO VAR-B
END-IF或
MOVE VAR-A TO VAR-B
IF VAR-A = FALSE
MOVE VAR-C TO VAR-B
END-IF发布于 2012-01-25 13:57:04
一般来说,这两个都可以,你应该把优化工作留给你的编译器。
然而,由于源代码是为人类编写的,以便理解以前的程序员所创建的内容,因此我想说:
如果可能出现任何一种情况,请使用此表单:
IF VAR-A = FALSE
MOVE VAR-C TO VAR-B
ELSE
MOVE VAR-A TO VAR-B
END-IF但是在IF条件是非常罕见的情况下,不合格的移动是99%的条件,尝试这种方法,因为它强调了VAR-A=FALSE是一种罕见和特殊的东西:
MOVE VAR-A TO VAR-B
IF VAR-A = FALSE
MOVE VAR-C TO VAR-B
END-IF只有我的NSH $0.02。只要你记住编译器会接受你提供给它的任何垃圾,这两种方法都能很好地工作,你主要关心的是下一个必须阅读你程序的人。
发布于 2011-12-27 19:24:26
我更喜欢这样:
IF VAR-A = TRUE
MOVE VAR-A TO VAR-B
ELSE
MOVE VAR-C TO VAR-B
END-IF一般来说,在if false上采取行动很难读懂,所以我更喜欢正面地陈述事情。而且我不认为效率差异真的很重要(特别是如果您使用的是COBOL)。无论如何,编译器通常都会做正确的事情。
发布于 2012-01-02 11:41:15
但我更喜欢这种编码方式,
MOVE VAR-A TO VAR-B
IF VAR-A = FALSE
MOVE VAR-C TO VAR-B
END-IF这是因为,为了处理/执行条件/循环/求值语句,编译器需要注意它们,并为此编写等效的编译器代码。
For instance, if we have scenarios where FALSE scenario occurs for less than 50% then we can move the value into the variable for TRUE always, which may avoid going into the IF and IF with no ELSE is always less complex.
你说呢?
https://stackoverflow.com/questions/8644035
复制相似问题