如果条件为真,则Cobol不进入

本杰明·扎克(Benjamin Zach)

我正在研究在HP Nonstop上部署的Cobol应用程序。在平台上进行调试时,我遇到以下情况:

IF LABELED-VALUE OF IN-VARIABLE-1 OF PARENT-1 OF GRAND-PARENT THEN
  MOVE IN-VARIABLE-2 OF PARENT-2 OF GRAND-PARENT TO OUT-VARIABLE
ELSE
  MOVE IN-VARIABLE-1 OF PARENT-1 OF GRAND-PARENT TO OUT-VARIABLE
END-IF

字段定义如下:

01 GRAND-PARENT
  03 PARENT-1.
    05 IN-VARIABLE-1                  PIC 9(3).
      88 LABELED-VALUE                VALUE 000.
  03 PARENT-2.
    05 IN-VARIABLE-2                  PIC 9(3).
    
01 OUT-VARIABLE                       PIC 9(3).

当我评估表达式时,LABELED-VALUE OF IN-VARIABLE-1 OF PARENT OF GRAND-PARENT调试器告诉我表达式为TRUE值为IN-VARIABLE-1 OF PARENT OF GRAND-PARENT0。因此OUT-VARIABLE应具有各自的值。但这种情况并非如此; 它总是具有值IN-VARIABLE-1,逻辑总是进入到ELSE
在这里,您可以在执行代码后看到调试器中的情况:到目前为止,我已经尝试过:在这里,您可以在执行代码后看到调试器中的情况。

  • 调整的条件IF以检查特定值,例如IF IN-VARIABLE-1 OF PARENT OF GRAND-PARENT EQUAL ZERO THENZERO实际上是的值LABELED-VALUE
  • 在我的调试器中,它会显示代码的旧版本,但是会显示最新版本的执行行指示符。这可能会导致指示符显示在错误的行前面。为了避免这种情况,我对注释进行了更改,重新编译,重新启动服务器类,然后重新附加到该过程中。这样做实际上我已经获得了该源的最新版本,因此可以排除此问题。

我不是Cobol专家,尽管我认为简单的方法IF是可以管理的,但无济于事。有人可以帮我吗?

更新:
在调试器中,我可以编辑字段的值。如果我覆盖现有价值000IN-VARIABLE-1 OF PARENT-1 OF GRAND-PARENT再次与0000在如果说之前,则该代码工作正常。WTF?

本杰明·扎克(Benjamin Zach)

问题实际上是关于如何IN-VARIABLE-1 OF PARENT-1 OF GRAND-PARENT初始化的。就我而言,它很可能尚未初始化。在这种情况下,可以通过以下方式解决问题:

IF LABELED-VALUE OF IN-VARIABLE-1 OF PARENT-1 OF GRAND-PARENT OR
   IN-VARIABLE-1 OF PARENT-1 OF GRAND-PARENT EQUAL LOW-VALUES
THEN
  MOVE IN-VARIABLE-2 OF PARENT-2 OF GRAND-PARENT TO OUT-VARIABLE
ELSE
  MOVE IN-VARIABLE-1 OF PARENT-1 OF GRAND-PARENT TO OUT-VARIABLE
END-IF

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果条件为真,但它会进入其他 Android Studio

来自分类Dev

如果没有,则检查条件是否为真,如果没有,则进入下一个级别

来自分类Dev

如果条件被跳过,即使条件为真

来自分类Dev

如果条件为真,则选择数据

来自分类Dev

如果条件为真,则排除文件

来自分类Dev

如果条件为真,则动态添加图标

来自分类Dev

如果条件为真,则停止功能

来自分类Dev

如果条件总是评估为真

来自分类Dev

如果条件为真,则隐藏元素

来自分类Dev

如果条件为真,则添加搜索参数

来自分类Dev

如果条件为真,则 SQL 过滤行

来自分类Dev

为什么不进入if条件?

来自分类Dev

如果条件为真,则将 wordpress 帖子更新为草稿

来自分类Dev

如果值为零时条件解析为真

来自分类Dev

如果条件返回true,则函数内部,但不进入主体

来自分类Dev

如果多个条件之一为真,如何执行JOIN?

来自分类Dev

如果条件为真,则删除numpy中的列

来自分类Dev

如果多个条件为真,如何多次执行迭代?

来自分类Dev

angular2 ng如果为真或假条件

来自分类Dev

O(n)算法,如果条件为真,则返回数组索引

来自分类Dev

MariaDB的执行UPDATE和DELETE然后如果条件为真

来自分类Dev

如果条件为真,则替换列表中的值

来自分类Dev

如果条件为真,如何添加新组件?主动的

来自分类Dev

如果条件为真,则添加HTML元素的Javascript

来自分类Dev

如果条件为真,则返回现有实例

来自分类Dev

“如果”条件为真,但正在执行“其他”

来自分类Dev

如果条件为真,则在数组中包含值

来自分类Dev

如果条件为真,则在保存按钮附近显示div

来自分类Dev

如果条件为假,为什么while循环被视为真?

Related 相关文章

热门标签

归档