Skip to main content

Comando: Invertir declaración IF

Función: Este comando invierte el IF declaración sin cambiar la semántica de la IF declaración. La condición es negada. Las declaraciones en el THEN y ELSE Se intercambian ramas. Todos los comentarios se conservan.

Llamar: Menú contextual debajo Refactorización dominio

Requisito: el cursor se encuentra en cualquier lugar dentro un IF declaración.

tabla 2. Reglas para la negación

Expresión

Expresión negada

Descripción

<

>=

La comparación de "menor que" se convierte en "mayor que" y viceversa.

<=

>

La comparación de "menor o igual que" se convierte en "mayor que" y viceversa.

=

<>

La comparación de "iguales" se convierte en "no iguales" y viceversa.

<expresión1> AND <expresión2>

( NOT <expresión1> ) OR ( NOT <expresión2> )

Negación según De Morgan para AND operador

<expresión1> OR <expresión2>

(NOT <expresión1> ) AND (NOT <expresión2> )

Negación según De Morgan para OR operador

<expresión>

NOT <expresión>

Negación estándar

NOT <expresión>

<expresión>

sin doble NOT expresión

a (*comentario*) = b

a (*comentario*) <> b

Los comentarios se conservan. Esto se aplica especialmente para operandos intercambiados.



ejemplo 9. Ejemplo
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;

Código después de llamar al comando con lógica invertida con la misma semántica:

 iVar := 0;
IF (xA AND xB AND xC) THEN
    iVar := iVar + 1; (* ELSE counter*)
ELSE
    iVar:= 1; (* IF 1 *)
END_IF