If statement 在语句中使用数字或字母代码;用于“如果”语句
我想知道如何用COBOL做一些事情。我试图编写一个程序,使用if语句从数据文件输出匹配的数据记录。但我还没有这样做,我需要做的是为不同的数据类型编写代码 蓝色=1 布朗=2 所以我试着这样做,但不起作用。我已在主记录中声明:If statement 在语句中使用数字或字母代码;用于“如果”语句,if-statement,cobol,If Statement,Cobol,我想知道如何用COBOL做一些事情。我试图编写一个程序,使用if语句从数据文件输出匹配的数据记录。但我还没有这样做,我需要做的是为不同的数据类型编写代码 蓝色=1 布朗=2 所以我试着这样做,但不起作用。我已在主记录中声明: 01 COLOR-IN PIC (9) 05 BLUE VALUE 1. 05 BROWN VALUE 2. 然后我想我可以写一个if语句,比如 IF COLOR-IN = BLUE PERFORM
01 COLOR-IN PIC (9)
05 BLUE VALUE 1.
05 BROWN VALUE 2.
然后我想我可以写一个if语句,比如
IF COLOR-IN = BLUE
PERFORM 200-OUTPUT.
所以我要问的是如何使颜色等于数字或字母代码。我应该写什么样的声明
我想出来了。我使用了88条语句。像这样
88 MALE VALUE 'M'.
但我还有一个问题。输出确实列出了满足“if”语句条件的记录,但是,我需要在程序中编码实际的头发和眼睛颜色,以便在程序执行时打印头发和眼睛颜色,而不是1或2。有谁能给我一个例子或提示如何做到这一点吗?+1了解88s。它们非常有用 您需要的是与您的值对应的标签表数组。如果您使用字母代码,如 88男性值'M'大小写,则表中有一个值和标签条目
01 INPUT-VALUE PIC X(1).
88 MALE VALUE "M".
88 FEMALE VALUE "F".
01 LABELS-AND-VALUES-AREA.
05 LABELS-AND-VALUES.
07 ONE-LABEL-AND-VALUE OCCURS 2.
09 ONE-LABEL PIC X(6).
09 ONE-VALUE PIC X(1).
05 FILLER REDEFINES LABELS-AND-VALUES
VALUE "MALE MFEMALEF".
01 I PIC S9(4) COMP.
01 DISPLAY-LABEL PIC x(6).
MOVE "?" TO DISPLAY-LABEL
PERFORM VARYING I FROM 1 BY 1 UNTIL I > 2
IF INPUT-VALUE = ONE-VALUE(I)
MOVE ONE-LABEL(I) TO DISPLAY-LABEL
END-IF
END-PERFORM
如果对输入值使用数字,可以跳过查找,直接转到所需的标签
01 INPUT-VALUE PIC 9(1).
88 MALE VALUE "1".
88 FEMALE VALUE "2".
88 VALID-INPUT VALUE "1", "2".
01 LABELS-AND-VALUES-AREA.
05 LABELS-AND-VALUES.
07 ONE-LABEL-AND-VALUE OCCURS 2.
09 ONE-LABEL PIC X(6).
05 FILLER REDEFINES LABELS-AND-VALUES
VALUE "MALE FEMALE".
01 DISPLAY-LABEL PIC x(6).
IF VALID-INPUT
MOVE ONE-LABEL(INPUT-VALUE) TO DISPLAY-LABEL
ELSE
MOVE "?" TO DISPLAY-LABEL
END-IF
对于这种情况,您可能需要为丢失/未知数据添加一些代码
更新
我添加了一些代码来处理丢失/未知的数据。+1了解88s。它们非常有用 您需要的是与您的值对应的标签表数组。如果您使用字母代码,如 88男性值'M'大小写,则表中有一个值和标签条目
01 INPUT-VALUE PIC X(1).
88 MALE VALUE "M".
88 FEMALE VALUE "F".
01 LABELS-AND-VALUES-AREA.
05 LABELS-AND-VALUES.
07 ONE-LABEL-AND-VALUE OCCURS 2.
09 ONE-LABEL PIC X(6).
09 ONE-VALUE PIC X(1).
05 FILLER REDEFINES LABELS-AND-VALUES
VALUE "MALE MFEMALEF".
01 I PIC S9(4) COMP.
01 DISPLAY-LABEL PIC x(6).
MOVE "?" TO DISPLAY-LABEL
PERFORM VARYING I FROM 1 BY 1 UNTIL I > 2
IF INPUT-VALUE = ONE-VALUE(I)
MOVE ONE-LABEL(I) TO DISPLAY-LABEL
END-IF
END-PERFORM
如果对输入值使用数字,可以跳过查找,直接转到所需的标签
01 INPUT-VALUE PIC 9(1).
88 MALE VALUE "1".
88 FEMALE VALUE "2".
88 VALID-INPUT VALUE "1", "2".
01 LABELS-AND-VALUES-AREA.
05 LABELS-AND-VALUES.
07 ONE-LABEL-AND-VALUE OCCURS 2.
09 ONE-LABEL PIC X(6).
05 FILLER REDEFINES LABELS-AND-VALUES
VALUE "MALE FEMALE".
01 DISPLAY-LABEL PIC x(6).
IF VALID-INPUT
MOVE ONE-LABEL(INPUT-VALUE) TO DISPLAY-LABEL
ELSE
MOVE "?" TO DISPLAY-LABEL
END-IF
对于这种情况,您可能需要为丢失/未知数据添加一些代码
更新
我添加了一些代码来处理丢失/未知的数据。请按原样显示代码。请不要在标题前加上COBOL:之类的前缀。这就是标签的用途。请按现在的样子向我们显示代码。请不要在标题前加上COBOL:之类的前缀。这就是标签的作用。这非常有用。谢谢:为什么不只是评估一下,或者即使是评估一下呢?这非常有帮助。谢谢:为什么不只是评估一下,或者即使是?