如何在COBOL中验证来自用户的输入以仅接受数字> 1

时间:2017-12-21 22:31:56

标签: cobol

我有quantity变量pic X (4)。如果输入的数量不是数字或未输入数量或输入invalid quantity,如何验证DISPLAY 0的输入。

我尝试了IF QUANTITY IS NUMERIC但是没有用。我使用以下方法计算总费用:

COMPUTE TOTAL = FUNCTION NUMVAL (QUANTITY)  * PRICE

1 个答案:

答案 0 :(得分:1)

这在很大程度上取决于您拥有的编译器(和版本) - 请添加此缺失信息。

一般情况下:应验证所有用户输入,在您的情况下,您要使用数字索引,该索引应为pic 9(04)。这取决于编译器(版本),这已导致"只有字段中的数字数据"如果不是,您可以使用MOVE FUNCTION NUMVAL (input-field) TO quantity导致相同的结果。

之后您只需检查quantity是否在OCCURS的有效范围内:

发生固定长度的

quantity <= max-entries AND NOT = 0

quantity <= depending-field AND NOT = 0

OCCURS max-entries DEPENDING ON depending-field

注意:在&#34;等无效输入上使用FUNCTION NUMVAL z&#34;将导致0已被检查,因此您获得的信息&#34;无效&#34;用于输入零数字和&#34;字符串&#34;输入(通过一次检查)。