首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cobol if语句

Cobol if语句
EN

Stack Overflow用户
提问于 2011-12-27 19:15:40
回答 4查看 1.6K关注 0票数 1

哪种逻辑更好或更有效:

代码语言:javascript
复制
IF VAR-A = FALSE
   MOVE VAR-C TO VAR-B
ELSE
   MOVE VAR-A TO VAR-B
END-IF

代码语言:javascript
复制
MOVE VAR-A TO VAR-B
IF VAR-A = FALSE
   MOVE VAR-C TO VAR-B
END-IF
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-25 13:57:04

一般来说,这两个都可以,你应该把优化工作留给你的编译器。

然而,由于源代码是为人类编写的,以便理解以前的程序员所创建的内容,因此我想说:

如果可能出现任何一种情况,请使用此表单:

代码语言:javascript
复制
IF VAR-A = FALSE
   MOVE VAR-C TO VAR-B
ELSE
   MOVE VAR-A TO VAR-B
END-IF

但是在IF条件是非常罕见的情况下,不合格的移动是99%的条件,尝试这种方法,因为它强调了VAR-A=FALSE是一种罕见和特殊的东西:

代码语言:javascript
复制
MOVE VAR-A TO VAR-B
IF VAR-A = FALSE
   MOVE VAR-C TO VAR-B
END-IF

只有我的NSH $0.02。只要你记住编译器会接受你提供给它的任何垃圾,这两种方法都能很好地工作,你主要关心的是下一个必须阅读你程序的人。

票数 2
EN

Stack Overflow用户

发布于 2011-12-27 19:24:26

我更喜欢这样:

代码语言:javascript
复制
IF VAR-A = TRUE
   MOVE VAR-A TO VAR-B
ELSE
   MOVE VAR-C TO VAR-B
END-IF

一般来说,在if false上采取行动很难读懂,所以我更喜欢正面地陈述事情。而且我不认为效率差异真的很重要(特别是如果您使用的是COBOL)。无论如何,编译器通常都会做正确的事情。

票数 3
EN

Stack Overflow用户

发布于 2012-01-02 11:41:15

但我更喜欢这种编码方式,

代码语言:javascript
复制
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.

你说呢?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8644035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档