【发布时间】:2015-01-20 12:06:46
【问题描述】:
我是旧 COBOL 的新手。我正在尝试在线编译器的示例。但是,我正在使用的代码正在进入一个无限循环。代码是:
IDENTIFICATION DIVISION.
PROGRAM-ID. Conditions.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Char PIC X.
88 Vowel VALUE "a", "e", "i", "o", "u".
88 Consonant VALUE "b", "c", "d", "f", "g", "h"
"j" THRU "n", "p" THRU "t", "v" THRU "z".
88 Digit VALUE "0" THRU "9".
88 ValidCharacter VALUE "a" THRU "z", "0" THRU "9".
PROCEDURE DIVISION.
Begin.
DISPLAY "Enter lower case character or digit. No data ends.".
ACCEPT Char.
PERFORM UNTIL NOT ValidCharacter
EVALUATE TRUE
WHEN Vowel DISPLAY "The letter " Char " is a vowel."
WHEN Consonant DISPLAY "The letter " Char " is a consonant."
WHEN Digit DISPLAY Char " is a digit."
WHEN OTHER DISPLAY "problems found"
END-EVALUATE
END-PERFORM.
STOP RUN.
我的理解(只是一个粗略的想法)是 PERFORM UNTIL 就像 while,EVALUATE 就像 SWITCH 和 WHEN 类似于 C 中的 CASE。那么,输入有效字符时循环不应该中断吗?
【问题讨论】:
-
循环在 NOT ValidCharacter 上中断。
标签: infinite-loop cobol