COBOL中数字和字符串的布尔值

3

大多数编程语言认为任何非零数和非空字符串都是true。我想知道COBOL是否也是这样?

例1:(9 && 2) 被认为是 (true && true),因此返回true 例2:("" && "Hello")被认为是 (false && true),因此返回false

谢谢!

2个回答

6

Cobol没有像其他语言一样使用布尔类型,而是使用88级别。这88级别可以应用于其他类型,包括布尔和枚举类型。

基本的布尔类型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级提供基本的布尔变量(但没有布尔代数)。它们还允许您记录变量可能采用的可能值和其含义。

88级是Cobol中的一个不错的特性,特别是在与文件一起使用时。它允许您精确地定义文件字段可以具有的值。 在Java等语言中,您可以定义常量,但无法将常量链接到变量。您可以使用枚举类型,但这需要额外的代码,并且仅限于一个值。当然,文件不像过去那么重要了。


0

从谷歌搜索得知:

布尔数据项 COBOL 不直接支持逻辑/布尔变量;但是,使用 level-88 来定义条件名具有相同的效果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接