在MOVE和(=)语句中,Natural有什么区别?

时间:2014-04-03 21:23:49

标签: mainframe

在过去的几年里,我只在Natural中编程了几个星期。我只做足够的事情让自己过去了。

问题:MOVE a TO B和a = b之间有什么区别?

代码:

  MOVE A TO B
  MOVE D TO Y

或者

  A = B
  C = D      

2 个答案:

答案 0 :(得分:2)

如果您使用的是许可产品,则应该可以访问您网站上的文档。

Software AG是供应商。我通过简单的互联网搜索找到了这个:http://documentation.softwareag.com/natural/nat638vms/general/print.htm

这是OpenVMS上的Natural手册。它引用了大型机版本,看起来很好来回答你的问题。

这似乎是,在最简单的层面上,它们是相同的。但是,如果要进行计算,则需要COMPUTE =,这不能通过MOVE完成。 MOVE语句有各种格式。

我从未使用过Natural,也无法测试它。您可以访问该产品,该文档和文档将允许您为自己提供完整的答案。

答案 1 :(得分:0)

我想从我能记住的自然,基本上他们是相同的。但我也记得有一些不同。

在大多数情况下,我使用=只是因为如果你使用C ++这是一种更常见的查看方式。

    MOVE Your-Value TO Another-Value

大部分等于

    Another-Value = Your-Value

但是我认为它略有不同的地方是你能用和不能用MOVE执行什么计算。您可以移动到多个值,如下所示,但=只能移动到单个变量。

    MOVE A TO C D BaseBallScore

如果您必须一次将大量值移动到几个不同的计数器,这非常有用,但您可以一次移动一个。如下所示

    MOVE A TO C
    MOVE A TO D
    MOVE A TO BaseBallScore

还有一些可以与MOVE一起使用的功能,使其成为一个不错的选择。如舍入数字

    MOVE ROUNDED Value To NewValue <-- ROUNDED can take different parameters

这是另一个函数SUBSTRING,它允许您将字符串的一部分移动到字符串的另一部分。通常我使用=只是因为这是老板的做法,但MOVE语句为程序员提供了更多的灵活性。

    MOVE SUBSTRING(#A,5,8) TO #B

移动的在线参考位于:

http://documentation.softwareag.com/natural/nat638vms/print/sm.pdf