この章では論理演算子について説明します。
「if文について理解しよう。if文の基本構文1」の箇所で比較演算子について説明しましたが、if文でもっと複雑な条件定義をしたい場合には論理演算子を使用します。
では例をみてみましょう。 論理演算子andを挟んだ両辺にと が配置されていますが、両辺がTRUEの場合のみ条件式がTRUEになります。
つまり
もしくはの片方がFALSEの場合には条件式はTRUEになりません。
これが論理演算子 andの役割です。
結果は「$b==9」がFALSEなので、が出力されます。
次の例をみてみましょう。 andは$aと$bの両辺がTRUEの場合に条件式がTRUEになりましたが、orの場合は$aと$bのどちらかがTRUEの場合に条件式がTRUEになりますので、この例の場合はがFALSEですが、条件式はTRUEになります。
結果は「TRUEです」になります。
次の例をみてみましょう。
上の例はが TRUE,の部分がFALSEなので、全体の条件式はTRUEになりますので、結果はになります。 上の例はとが共にTRUEなので、全体の条件式はFALSEになりますので、結果はになります。
次の例をみてみましょう。 上の例は先ほどのandの箇所で使用した例題にを付けたのですが、「!」を付けることで条件式がTRUEではない場合にif文が実行されます。
結果はになります。
次の例をみてみましょう。
ただ単に変数にが付いているだけですが、これでも条件式としては成り立ちます。
ではこの例の何がTRUEもしくはFALSEになるのかの判断基準を説明します。
FALSEとは
〇整数の0
〇浮動小数点の0.0
〇文字列の〇何も入ってない文字列、
つまりのように変数に何も入ってないカラ文字
〇要素が何も入ってない配列
〇NULL
NULLとは何も変数に入ってない状態を指します。
〇FALSEという文字
ここまでがFALSEです。
それ以外はすべてTRUEです。
例えば変数に中にのようにFALSEの条件以外の値が入っていればTRUEです。
以下の例は$aにが入っているので以下の条件式はTRUEです。 先ほどの以下の例を書き換えてみましょう。 上の例を書き換えると以下のようになります。 は同じ意味です。
条件式であるは$aが FALSEであるならばif文が実行されます。
このように条件式で真偽を調べるときに明示的にFALSE、TRUEを使うことが出来ることを覚えておいてください。
結果は「0はFALSE」なのでが実行されます。
次は論理演算子の優先順位について説明します。
論理演算子には順位がありまして、の方がよりも優先度が高い、つまり、先に実行されるという事です。
また、が並んだ場合には、最初に評価されるのはです。
例を見てみましょう。 論理演算子が2つありますが、最初に評価されるのはandなので、あえて括弧で囲みますと以下のようになります。
orは両辺のどちらかがTRUEであれば条件式がTRUEになりますので、結果はになります。 以下のようにorを中心に評価されるのではないことに注意してください。 では次の例を見てみましょう。この例ではよりの方が優先順位が高いので、あえて括弧で囲みますと以下のようになります。の結びつきが優先されますので以下のような括弧の囲みにはなりません。
カテゴリー