Il capo è corretto.
COBOL è presunto per leggere qualcosa di simile al linguaggio naturale (questo risulta essere solo un altro brutto scherzo).
Consente di giocare con le seguenti variabili e valori:
A = 1
B = 2
C = 3
Un'espressione come:
IF A NOT EQUAL B THEN...
È abbastanza semplice da capire. Uno non è uguale a due, quindi faremo lo seguendo lo THEN
. Tuttavia,
IF A NOT EQUAL B AND A NOT EQUAL C THEN...
È molto più difficile da seguire. Di nuovo uno non è uguale a due E uno non è uguale a tre, quindi faremo qualsiasi cosa segua il 'THEN'.
COBOL ha una struttura a mano corta che IMHO non dovrebbe mai essere utilizzato. Si confonde solo su tutti (incluso me di volta in volta). espressioni mano brevi consentono di ridurre quanto sopra a:
IF A NOT EQUAL B AND C THEN...
o se si desidera applicare De Morgans rule:
IF NOT (A EQUAL B OR C) THEN...
Il mio consiglio è di evitare NOT
in exprssions e MAI uso COBOL mano corta espressioni.
cosa si vuole veramente è:
IF X = SPACE OR X = LOW-VALUE THEN...
CONTINUE
ELSE
do whatever...
END-IF
È possibile che questo non fa nulla quando la 'X' contiene spazi o bassi valori (nulli). E è esattamente la stessa:
IF NOT (X = SPACE OR X = LOW-VALUE) THEN
do whatever...
END-IF
che può essere trasformato in:
IF X NOT = SPACE AND X NOT = LOW-VALUE THEN...
E per finire ...
IF X NOT = SPACE AND LOW-VALUE THEN...
mio consiglio è di attenersi a semplici da capire più a lungo e dritto in avanti espressioni in COBOL, dimenticare il breve schifezza mano.
Grazie mille NealB! ;) – Tom
In COBOL, ci sono molti modi per scrivere condizioni come questa. Molti di loro portano ad ambiguità o errata interpretazione.Sono completamente d'accordo con il consiglio di @ NealB. –