Le chef a raison.
COBOL est supposé pour lire quelque chose comme le langage naturel (cela s'avère être juste une autre mauvaise blague).
permet de jouer avec les variables et les valeurs suivantes:
A = 1
B = 2
C = 3
Une expression telle que:
IF A NOT EQUAL B THEN...
Est-ce assez simple à comprendre. On n'est pas égal à deux donc on va faire ce qui suit le THEN
. Cependant,
IF A NOT EQUAL B AND A NOT EQUAL C THEN...
Il est beaucoup plus difficile à suivre. Encore une fois n'est pas égal à deux ET on n'est pas égal à trois donc nous ferons tout ce qui suit le 'THEN'.
COBOL a une construction de la main courte que IMHO ne devrait jamais être utilisé. Il confond à peu près tout le monde (y compris moi de temps en temps). Courtes expressions de main vous permettent de réduire le dessus:
IF A NOT EQUAL B AND C THEN...
ou si vous souhaitez appliquer De Morgans rule:
IF NOT (A EQUAL B OR C) THEN...
Mon conseil pour vous est d'éviter NOT
dans exprssions et JAMAIS utilisation COBOL main courte expressions.
Qu'est-ce que vous voulez vraiment est:
IF X = SPACE OR X = LOW-VALUE THEN...
CONTINUE
ELSE
do whatever...
END-IF
Le fait ci-dessus rien lorsque le 'X' contient des espaces ou des faibles valeurs (NULLS). Il est exactement le même que:
IF NOT (X = SPACE OR X = LOW-VALUE) THEN
do whatever...
END-IF
qui peut être transformé en:
IF X NOT = SPACE AND X NOT = LOW-VALUE THEN...
Et enfin ...
IF X NOT = SPACE AND LOW-VALUE THEN...
Mon conseil est de rester à l'avant simple à comprendre et plus droites expressions en COBOL, oublier la merde main courte.
Merci beaucoup NealB! ;) – Tom
En COBOL, il y a beaucoup de manières d'écrire des conditions comme celle-ci. Beaucoup d'entre eux mènent à l'ambiguïté ou à une mauvaise interprétation.Je suis entièrement d'accord avec les conseils de @ NealB. –