論理積


論理積概要

 前回は論理和について解説しました(前回の記事はこちら)。今回は論理積について解説していきます。論理和は英語のorに相当し、どちらか一方がTRUEであればTRUEでした。対して論理積は両方TRUEの時のみTRUEとなります。英語のandに相当します。出力表は下記資料に記載します。

前回のコードをアレンジして論理積のテストコードを書きます。

コード

#include <stdio.h>

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

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

    if((x<y)&&(x<z))
        puts("true");
    else
        puts("false");
    return 0;
}
'VBA
Option Explicit

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

    If ((x < y) And (x < z)) Then
        Debug.Print "true"
    Else
        Debug.Print "false"
    End If
End Sub

(x=y)and(x=z) = 0 (false)
(x<y)and(x>z) = 0 (false)
(x>y)and(x<z) = 0 (false)
(x<y)and(x<z) = 1 (true)
true
と出力されたと思います(VBAは表示のイミディエイトウィンドウを選択して確認します)。論理積も論理和と同様に沢山ある条件をより絞りたい時によく使います。次回は否定を解説します。


コメントを残す