【JavaScript】論理式・論理演算 – 論理和、論理積、否定
JavaScriptの論理式、論理演算をご紹介します。
論理式
論理式は真偽値(boolean型のtrue/false)を判定する式です。
例えば変数numがあるとき、『変数numは10と等しい』、『変数numは3より大きい』などを表わします。
式が正しければ真(true)、間違っていれば偽(false)と判定されます。
論理演算
論理演算は論理値の演算です。
2つの論理値を1つの論理値にまとめる論理和や論理積、論理値を反転させる否定などの演算があります。
論理和
論理和は2つの論理値の一方でも真の場合、演算結果を真とします。
一般的に『または』という用語で説明されることが多く、論理値のAとBがあるとき、『AまたはBが真の場合、真とする』と要約されます。
論理和は次のパターンがあります。
A | B | 論理和 |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
論理積
論理積は2つの論理値の両方が真の場合、演算結果を真とします。
一般的に『かつ』という用語で説明されることが多く、論理値のAとBがあるとき、『Aが真かつBも真の場合、真とする』と要約されます。
論理積は次のパターンがあります。
A | B | 論理積 |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
否定
否定は論理値を反転します。
一般的に論理値のAとBがあるとき、『Aが真なら偽とし、Aが偽なら真とする』と要約されます。
否定は次のパターンがあります。
A | 否定 |
---|---|
true | false |
false | true |
論理演算子
論理演算はプログラムでは論理演算子を使って表わします。
代表的な論理演算子は論理和、論理積、否定の3つです。
論理演算 | 演算子 | 意味 |
---|---|---|
論理和 | || | 左右オペランドの一方が真の場合、真とする |
論理積 | && | 左右オペランドの両方が真の場合、真とする |
否定 | ! | オペランドが真の場合は偽、偽の場合は真とする |
論理演算(論理和)
基本構文
左オペランド || 右オペランド
サンプル
let a_t = true;
let a_f = false;
let b_t = true;
let b_f = false;
// true / true
let result1 = a_t || b_t;
console.log(result1);
// true / false
let result2 = a_t || b_f;
console.log(result2);
// false / true
let result3 = a_f || b_t;
console.log(result3);
// false / false
let result4 = a_f || b_f;
console.log(result4);
true
true
true
false
論理演算(論理積)
基本構文
左オペランド && 右オペランド
サンプル
let a_t = true;
let a_f = false;
let b_t = true;
let b_f = false;
// true / true
let result1 = a_t && b_t;
console.log(result1);
// true / false
let result2 = a_t && b_f;
console.log(result2);
// false / true
let result3 = a_f && b_t;
console.log(result3);
// false / false
let result4 = a_f && b_f;
console.log(result4);
true
false
false
false
論理演算(否定)
基本構文
!オペランド
サンプル
let bool1 = true;
let bool2 = false;
let result1 = !bool1;
console.log(result1);
let result2 = !bool2;
console.log(result2);
false
true
論理式の結合
論理演算子を使い、複数の論理式を1つにまとめることができます。
比較演算子を含む場合
比較演算子を使った論理式を1つにまとめることができます。
サンプル
let num1 = 5;
let num2 = 8;
let num3 = 11;
let result = num1 < num2 && num3 > num2;
console.log(result);
true
5行目のnum1 < num2 && num3 > num2
はnum1 < num2
とnum3 > num2
の真偽の論理積です。
いずれも真のため全体で真となります。
論理演算子のみ
複数の論理値を論理演算子で1つにまとめることができます。
サンプル
let bool1 = true;
let bool2 = false;
let bool3 = true;
let result = bool1 && bool2 || bool3;
console.log(result);
true
5行目のbool1 && bool2 || bool3
は左から1つずつ判定処理されます。
最初にbool1 && bool2
が偽と判定されます。
その結果を適用すると、偽 || bool3
となり、真となります。