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_VARiVar := 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