Befehl: IF-Anweisung invertieren
Funktion: Dieser Befehl invertiert die IF
-Anweisung, ohne die Semantik der IF
-Anweisung zu ändern. Die Bedingung wird negiert. Die Anweisungen in den Zweigen THEN
und ELSE
werden vertauscht. Alle Kommentare bleiben erhalten.
Aufruf: Kontextmenü unter Befehl Refactoring
Voraussetzung: Der Cursor steht innerhalb einer IF
-Anweisung an einer beliebigen Stelle.
Ausdruck | Negierter Ausdruck | Beschreibung |
---|---|---|
|
| Der Vergleich auf "kleiner als" wird zu "größer als" und umgekehrt. |
|
| Der Vergleich auf "kleiner gleich als" wird zu "größer als" und umgekehrt. |
|
| Der Vergleich auf "gleich" wird zu "ungleich" und umgekehrt. |
|
| Negierung nach De-Morgan für Operator |
|
| Negierung nach De-Morgan für Operator |
|
| Standardnegation |
|
| Kein doppeltet |
|
| Kommentare bleiben erhalten. Dies gilt insbesondere für vertauschte Operanden |
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;
Code nach Aufruf des Befehls mit invertierter Logik bei gleicher Semantik:
iVar := 0; IF (xA AND xB AND xC) THEN iVar := iVar + 1; (* ELSE counter*) ELSE iVar:= 1; (* IF 1 *) END_IF