コマンド: IF ステートメントを反転する
関数: このコマンドは、 IF
のセマンティクスを変更せずにステートメントを作成します。 IF
声明。条件は否定されます。の声明は、 THEN
そして ELSE
枝が入れ替わる。すべてのコメントは保持されます。
電話: 下のコンテキストメニュー リファクタリング 指示
要件: カーソルが任意の場所に配置されている 内で の IF
声明。
表 2. 否定のルール
表現 | 否定表現 | 説明 |
---|---|---|
|
| 「より小さい」の比較は「より大きい」になり、その逆も同様です。 |
|
| 「以下」の比較は「より大きい」になり、その逆も同様です。 |
|
| 「等しい」の比較は「等しくない」になり、その逆も同様です。 |
|
| ド・モルガンによれば、否定は |
|
| ド・モルガンによれば、否定は |
|
| 標準の否定 |
|
| ダブルなし |
|
| コメントは保持されます。これは特にスワップされたオペランドに当てはまります |
例 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