否定


否定の概要

 前回までに論理和、論理積と解説しました。今回もif文の条件としてよく使われる否定について解説していきます。下記の資料に出力表現を掲載します。

 否定のサンプルコードを下記に記載します。

コード

#include <stdio.h>

//C言語論理積テストプログラム
int main()
{
    int x=20;
    int y=50;
    int z=30;

    printf("%s%d\n","Not((x=y)and(x=z))=",!((x==y)&&(x==z)));
    printf("%s%d\n","Not(x<y)and(x>z))=",!((x<y)&&(x>z)));
    printf("%s%d\n","Not((x>y)and(x<z))=",!((x>y)&&(x<z)));
    printf("%s%d\n","Not((x<y)and(x<z))=",!((x<y)&&(x<z)));

    if(x!=20)
        puts("true");
    else
        puts("false");
    return 0;
}
'VBA
Option Explicit

Sub notTest()
    Dim x As Integer: x = 20
    Dim y As Integer: y = 50
    Dim z As Integer: z = 30
    
    Debug.Print "Not((x=y)and(x=z))=", Not ((x = y) And (x = z))
    Debug.Print "Not((x<y)and(x>z))=", Not ((x < y) And (x > z))
    Debug.Print "Not((x>y)and(x<z))=", Not ((x > y) And (x < z))
    Debug.Print "Not((x<y)and(x<z))=", Not ((x < y) And (x < z))

    If (x <> 20) Then
        Debug.Print "true"
    Else
        Debug.Print "false"
    End If
End Sub

Not((x=y)and(x=z)) = 1 (true)
Not((x<y)and(x>z)) = 1 (true)
Not((x>y)and(x<z)) = 1 (true)
Not((x<y)and(x<z)) = 0 (false)
true
この様に表示されたと思います。C言語とVBAで否定を表すコードは違いますが、否定したい式を()でくくります。Not((x=y)and(x=z))をNot(x=y)and(x=z)と書いてしまうと出力が変わってしまうので注意してください。またC言語は=<>(不等号)の前に!マークをつけると不等号を否定します。これも条件文でよく使うのでマスターしましょう。
 次回は2次元配列について解説します。


コメントを残す