Skip to main content

命令:反转 IF 语句

功能:该命令反转 IF 声明不改变语义 IF 陈述。条件被否定。中的陈述 THENELSE 分支被交换。所有评论均被保留。

称呼:上下文菜单下 重构 命令

要求:光标位于任意位置 之内 一个 IF 陈述。

2. 否定规则

表达

否定表达

描述

<

>=

“小于”的比较变为“大于”,反之亦然。

<=

>

“小于或等于”的比较变为“大于”,反之亦然。

=

<>

“等于”的比较变成“不等于”,反之亦然。

<表达1> AND <表达2>

( NOT <表达1> ) OR ( NOT <表达2> )

根据德摩根的否定 AND 操作员

<表达1> OR <表达2>

(NOT <表达1> ) AND (NOT <表达2> )

根据德摩根的否定 OR 操作员

<表达>

NOT <表达>

标准否定

NOT <表达>

<表达>

没有双 NOT 表达

a (*评论*) = b

a (*评论*) <> b

评论被保留。这尤其适用于交换操作数



9. 例子
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;

调用具有相同语义的反转逻辑命令后的代码:

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