Comando: Inverti istruzione IF
Funzione: Questo comando inverte il IF
istruzione senza modificare la semantica di IF
dichiarazione. La condizione è negata. Le dichiarazioni in THEN
E ELSE
i rami vengono scambiati. Tutti i commenti vengono conservati.
Chiamata: menu contestuale sotto Refactoring comando
Presupposto: il cursore è posizionato ovunque entro UN IF
dichiarazione.
Espressione | Espressione negata | Descrizione |
---|---|---|
|
| Il confronto su “minore di” diventa “maggiore di” e viceversa. |
|
| Il confronto su “minore o uguale a” diventa “maggiore di” e viceversa. |
|
| Il confronto su “è uguale” diventa “non è uguale” e viceversa. |
|
| Negazione secondo De Morgan per |
|
| Negazione secondo De Morgan per |
|
| Negazione standard |
|
| Nessun doppio |
|
| I commenti vengono conservati. Ciò vale soprattutto per gli operandi scambiati |
PROGRAM Inversion1 VAR xA, xB, xC : BOOL; iVar : INT; END_VAR
iVar := 0; IF NOT(xA AND xB AND xC) THEN iVar:= 1; (* IF 1 *) ELSE iVar := iVar + 1; (* ELSE counter*) END_IFiVar := 0;
Codice dopo aver chiamato il comando con logica invertita con la stessa semantica:
iVar := 0; IF (xA AND xB AND xC) THEN iVar := iVar + 1; (* ELSE counter*) ELSE iVar:= 1; (* IF 1 *) END_IF