論理演算子とは
3年以上前に更新されました。情報が古い可能性があります。
更新日 : 2019年04月15日
更新日 : 2019年04月15日
演算子についての最後の記事です。
論理演算子は比較演算子と同時に使われることも多い演算子です。どちらもTRUEなのか、片方だけがTRUEなのかなどを判別するために利用されます。
論理演算子
比較演算子では2つの値の比較を行いました。比較の結果をTRUEまたはFALSEで表すものでした。
論理演算子では左右の式がどちらもTRUEなのか、どちらかがTRUEなのか、あるいはFALSEなのかを調べる際に利用します。
下記の表をご覧ください。
演算式 | 演算式の意味 |
---|---|
A && B | A式とB式が両方ともTRUEのときTRUE(真)、それ以外はFALSE(偽) |
A || B | A式とB式のどちらかでもTRUEのときTRUE、それ以外はFALSE |
!A | A式がTRUEではないときTRUE、それ以外はFALSE |
とりあえずこちらの2種類だけ知っておけばなんとかなります。無駄にいろいろなことは覚える必要はありません。
ではPHPのコードを使って見てみましょう。
<?php
$x = 10;
$y = 3;
// どちらも正しいのでTRUE(1)
echo ($x == 10) && ($y == 3);
echo "<br>";
// 左辺が正しいのでTRUE
// またはという条件なので右辺の式はTRUEでもFALSEでも関係なし
echo ($x == 10) || ($y == 8);
echo "<br>";
// 結果はTRUE
echo !FALSE;
echo "<br>";
// 結果はTRUE
// 式が順番に比較され、まずは($x == 10) && ($y == 3)がTRUEとわかる
// ($x == 10) && ($y == 3)はTRUEなので
// TRUE && ($x * $y == 30)という意味で次を解釈することができ、これもTRUEとなるので全体でTRUE
echo ($x == 10) && ($y == 3) && ($x * $y == 30);
echo "<br>";
// 結果はTRUE
// このように論理式をカッコで囲うことも可能で
// まずは(($x == 3) || ($y == 10))この式が判断されます。これは$xと$yがどちらも反対なので結果がFALSEになりますが
// !(ビックリマーク)で反転するため!(($x == 3) || ($y == 10))これはTRUE
// 1番右の式とTRUEを論理演算子で比較すると全体でTRUEとなる
echo !(($x == 3) || ($y == 10)) && ($x * $y == 30);
?>
結果はすべてTRUEとなります。
コード例のように、カッコで囲うことによって複数条件を組み込んだり、いくつかの論理演算子を使用して、全体でどのようになるかを判定する事ができます。
まとめ
この論理演算子までで、すべての演算子について学びました。プログラミング言語にこれらの演算子は必ず実装されています。
比較演算子や論理演算子に関しては今回の記事内のコード例ではどのように利用するのかわからないと思いますが、if文という条件式など以降の記事で多用するようになりますので、今回は演算子の使い方を理解していただければと思います。