大多数编程语言认为任何非零数和非空字符串都是true。我想知道COBOL是否也是这样?
例1:(9 && 2) 被认为是 (true && true),因此返回true 例2:("" && "Hello")被认为是 (false && true),因此返回false
谢谢!
Cobol没有像其他语言一样使用布尔类型,而是使用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
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等语言中,您可以定义常量,但无法将常量链接到变量。您可以使用枚举类型,但这需要额外的代码,并且仅限于一个值。当然,文件不像过去那么重要了。
从谷歌搜索得知:
布尔数据项 COBOL 不直接支持逻辑/布尔变量;但是,使用 level-88 来定义条件名具有相同的效果。