論理和


論理和概要

 前回はif文を使った空白判定を解説しました(前回の記事はこちら)。今回はif文でよく使う論理和について説明していきます。まず論理和とは英語で言うと「or」に相当します。つまり「どっちか」です。XとYどちらかがtrueの時、または両方trueの時trueを返します。下記資料で表にまとめました。※trueは数字の1、falseは0を意味します。

 C言語とVBAでテストコードを書いてみます。

コード

#include <stdio.h>

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

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

    if((x<y)||(x>z))
        puts("true");
    else
        puts("false");
    return 0;
}
Option Explicit

Sub orTest()
    Dim x As Integer: x = 20
    Dim y As Integer: y = 50
    Dim z As Integer: z = 30
    
    Debug.Print "(x=y)or(x=z)=", (x = y) Or (x = z)
    Debug.Print "(x<y)or(x>z)=", (x < y) Or (x > z)
    Debug.Print "(x>y)or(x<z)=", (x > y) Or (x < z)
    Debug.Print "(x<y)or(x<z)=", (x < y) Or (x < z)

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

(x=y)or(x=z) = 0 (false)
(x<y)or(x>z) = 1 (true)
(x>y)or(x<z) = 1 (true)
(x<y)or(x<z) = 1 (true)
true
と出力されたと思います。(VBAは表示のイミディエイトウィンドウを選択して確認します。)
 論理和は沢山ある条件をより絞りたい時によく使います。注意点として言語によってコードの書き方が違うので気をつけましょう。
 次回は論理積を解説します。


コメントを残す