Jefe es correcta.
COBOL es supone para leer algo así como el lenguaje natural (esto resulta ser simplemente otra mala broma).
Vamos a jugar con las siguientes variables y valores:
A = 1
B = 2
C = 3
Una expresión como:
IF A NOT EQUAL B THEN...
Es bastante sencillo de entender. Uno no es igual a dos, así que haremos lo que sea sigue el THEN
. Sin embargo,
IF A NOT EQUAL B AND A NOT EQUAL C THEN...
es mucho más difícil de seguir. De nuevo, uno no es igual a dos Y uno no es igual a tres, así que haremos lo que sigue al 'ENTONCES'.
COBOL tiene una construcción de mano corta que en mi humilde opinión nunca se debe utilizar. Confunde aproximadamente a todos (incluyéndome a mí de vez en cuando). expresiones de la mano cortos permiten reducir el anterior a:
IF A NOT EQUAL B AND C THEN...
o si gustaría aplicar De Morgans rule:
IF NOT (A EQUAL B OR C) THEN...
Mi consejo es evitar NOT
en exprssions y NUNCA uso COBOL mano corta expresiones.
Lo que realmente quiere es:
IF X = SPACE OR X = LOW-VALUE THEN...
CONTINUE
ELSE
do whatever...
END-IF
Lo anterior no hace nada cuando la 'X' contiene espacios o-bajos valores (valores nulos). Se es exactamente lo mismo que:
IF NOT (X = SPACE OR X = LOW-VALUE) THEN
do whatever...
END-IF
que se puede transformar en:
IF X NOT = SPACE AND X NOT = LOW-VALUE THEN...
Y por último ...
IF X NOT = SPACE AND LOW-VALUE THEN...
Mi consejo es que se adhieren a simple entender más larga y recta hacia adelante expresiones en COBOL, olvidar la basura lado corto.
Muchas gracias NealB! ;) – Tom
En COBOL, hay muchas maneras de escribir condiciones como esta. Muchos de ellos conducen a la ambigüedad o mala interpretación.Estoy totalmente de acuerdo con el consejo de @NealB. –