この章では論理演算子について説明します。
if文にの章で関係演算子を説明しましたが、if文でもっと複雑な条件定義をしたい場合には論理演算子を使用します。
では例をみてみましょう。
条件式のの中でandを挟んだ両辺が TRUEの場合のみ条件式がTRUEになります。
つまり、もしくは の片方がFALSEの場合には条件式はTRUEになりません。
これが論理演算子のandの機能です。
結果は「$b==9」がFALSEなので、が出力されます。
次の例をみてみましょう。
andは$aと$bの両辺がTRUEの場合に条件式がTRUEになりましたが、orは$aと$bのどちらかがTRUEの場合に条件式がTRUEになりますので、この例の場合はがFALSEですが、条件式はTRUEになります。
結果はになります。
次の例をみてみましょう。
「!$a」と「$a==FALSE」は同じことを意味しています。
条件式であるの意味は$aがFALSEであるならば条件式はTRUEになると言う意味です。
ここで上のTRUEとFALSEの条件を見てみるとFALSEとは整数の0と書いてありますので、この例の場合は条件式はTRUEになります。
「!」を付けることで条件式がTRUEではない場合にTRUEになります。
条件式で真偽を調べるときに明示的にのようにFALSEやTRUEを使うことが出来ることを覚えておいてください。
もう一つ「!」の例を示します。
これは先ほどの例に「!」を付け加えたのですが、このように「!」を使うことで、実行結果が逆になります。
結果は「TRUEではありません」です。
次は論理演算子の順位について説明します。
では例をみてみましょう。
論理演算子が2つありますが、最初に実行されるのはandなので、あえて括弧で囲みますと以下のようになります。
orは両辺のどちらかがTRUEであれば条件式がTRUEになりますので、結果はになります。
また以下のようにorを中心に評価されるのではないことに注意してください。
つまり、から先に結びつくのではないということです
では次の例をみてみましょう。
「$b==2」 と 「$c==4」の結びつきが優先されますので、以下のような括弧の囲みにはなりません。