Skip to main content

コマンド: IF ステートメントを反転する

関数: このコマンドは、 IF のセマンティクスを変更せずにステートメントを作成します。 IF 声明。条件は否定されます。の声明は、 THEN そして ELSE 枝が入れ替わる。すべてのコメントは保持されます。

電話: 下のコンテキストメニュー リファクタリング 指示

要件: カーソルが任意の場所に配置されている 内で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