COBOL中数字和字符串的 boolean 值

标签 boolean cobol

大多数编程语言将任何非零数字和非空字符串识别为真。我想知道 COBOL 是否也这样做?

Example1: (9 && 2) 被识别 (true && true) 所以返回 true Example2: (""&& "Hello") 被识别(false && true)所以返回 false

谢谢!

最佳答案

Cobol 没有像其他语言那样有 boolean 值,它有 88 个级别。 88级可以应用于其他类型。它们涵盖 boolean 值和枚举 其他语言。

基本 boolean 88级

你可以做到

    05 Filler              pix x value 'N'.
       88 end-of-file value 'Y'.
       88 more-date-in-file value 'N'


    perform until   end-of-file
        ...

        read Transaction-File
         at end set end-of-file    to True
   end-perform

基础枚举88级

  03 Transaction-Code                pic s9(4) comp-3.
     88 Purchase-Transaction value    1000, 1001, 1005 thru 1009.
     88 Sales-Transaction    value    2000, 2010, 2020.
     88 Price-Adjustment     value    2050.
     88 Transfer-Transaction value    1050.



  evaluate true
     when Purchase-Transaction
       ...
     when Sales-Transaction    
       ...

总结

88 级提供基本的 boolean 变量(但没有 boolean 代数)。他们也 允许您记录一个变量可以取的可能值 + 那里的意义。

88 级 是 Cobol 的更好特性之一,尤其是与文件一起使用时。它允许您准确地定义文件中字段可以具有的值。 在 Java 等中,您可以定义常量,但不能将常量链接 到变量。您可以使用枚举,但这将需要额外的代码并且仅限于一个值。当然,文件并不像以前那么重要。

关于COBOL中数字和字符串的 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61918316/

相关文章:

xml - 将 Cobol 字帖转换为 XSD

sql - 我可以将一堆 boolean 列转换为 PostgreSQL 中的单个位图吗?

c++ - C++中动态 boolean 数组的默认值

web-services - 是否可以使用 Cobol 程序中的 Web 服务?

linux - Cobol - 语法错误,意外的 $undefined,期望 "end of file"

parsing - 确定 Cobol 编码风格

java - 验证用户名唯一获取错误

c++ - 由于值返回函数中的错误,程序无法编译。它说未声明的标识符

pipe - 如何在没有输入源文件的情况下通过管道运行 cobc?