論理和概要
前回は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は表示のイミディエイトウィンドウを選択して確認します。)
論理和は沢山ある条件をより絞りたい時によく使います。注意点として言語によってコードの書き方が違うので気をつけましょう。
次回は論理積を解説します。