为什么我们在移动之前检查是否为空?

时间:2018-06-14 13:11:20

标签: cobol

我看到很多这样的代码:

if WA > SPACES
  move WA to WA2
end-if

检查这个有什么好处?检查它是否为空是否比移动它更有效?

其他信息:

WA和WA2可以是简单的结构(没有填充物),但也只是简单的属性。它们不会被重新划分并键入字符或字符结构。它们可以是low-values(语义NULL)或具有字母数字内容。

2 个答案:

答案 0 :(得分:2)

没有人可以告诉你实际原因是什么,除了编码它的人,但这是一个非常可能的原因:

通常伴随着ELSE会覆盖当值小于空格时会发生什么,但在这种情况下,我会假设以后每次发生的事情都依赖于该字段而不是{ {1}}或一些时髦的不可显示的控制角色。

如果我不得不猜测,我会假设LOW-VALUES被初始化为空格。因此,在移动之前执行此检查可确保将低于空格的任何内容移动到该变量。请记住,少于空格并不意味着空,它只是意味着该字符串的十六进制值小于WA2(因此,例如,字符串充满了低值,它将全部为X'40'。所以我猜它更多的是确保数据有效而不是效率。

答案 1 :(得分:-1)

此代码不会避免移动'如果为空'但是<= SPACES

一个原因是避免移动SPACES,如果它没有价值,你可能不希望用不是真的任何值填充它。