JavaScript - if文でのand(&&)、or(||)、not(!)の使い方
JavaScriptには、論理演算子としてand(&&)、or(||)、not(!)があります。
if文でも論理演算子を使うことで、より複雑な論理式(条件式)を定義することができます。
ここでは、3つの論理演算子の意味と使い方を紹介します。
3つの論理演算子
演算子 | 意味 | 例 |
---|---|---|
&& | 論理積 AND かつ | a && b |
|| | 論理和 OR または | a || b |
! | 論理否定 NOT ~でない | !a |
「&&」: AND をあらわす論理積演算子
「&&」は論理積演算子で、前のオペランド(被演算子)と後ろのオペランドの 両方が true の場合に true となります。
★ 「&&」 の例
if (a == 0 && b == 0){
// 処理
}
上の場合、a と b の両方が 0 の場合、true となります。 それ以外は false です。
「||」: OR をあらわす論理和演算子
「||」は論理和演算子で、オペランド(被演算子)のどちらか一方、 または両方が true の場合に true となります。
両方が false の場合には false となります。
★ 「||」 の例
if (a == 0 || b == 0){
// 処理
}
上の場合、a と b のいずれかが 0、または両方が 0 の場合に true となります。
両方とも 0 でない場合は false となります。
「!」: NOT をあらわす論理否定演算子
「!」は論理否定演算子で、オペランド(被演算子)は1つです。
オペランドの論理値を反転させ、 オペランドが true の場合は false となり、 オペランドが false の場合は true となります。
★ 「!」 の例
if (!(a == 0)){
// 処理
}
上の場合、a == 0 が true の場合は false となり、
a == 0 が false の場合は true となります。
文法エラーになる記述例
「!」を使う場合、次のように記述すると文法エラーとなりますので注意してください。
どこが間違いか考えてみてください。
if !(a == 0){
// 処理
}
// エラーメッセージ
// SyntaxError: missing ( before condition
JavaScript では、条件式を () で囲む必要があります。
この場合、「!」を含む「!(a == 0)」が条件式ですから、 (!(a == 0)) と記述する必要があります。
if文の条件式が長くなる場合の折り返し(改行)方法
and(&&)、or(||)、not(!)の論理演算子を使った場合、 if文の条件式が長くなり、見にくくなる場合があります。
条件式が長くなった場合は、 見やすくなるように折り返し(改行)します。
折り返し(改行)の方法については次のページを参考にしてください。
関連記事: 長いif文の条件式や、文字列はどこで折り返すのがいい?