- ベストアンサー
andの意味について
※$a eq $b・・・$a と $b が等しい時に真 $a=1; $b=1; 下記の、例)2のandの意味が「且つ~~」として解釈していないと思うのですが、andの意味って( )の中と外だと意味が違ってくるのでしょうか。 下記の場合のandの違いを日本語訳で明確に理解したいのですが、どなたかご教授願えませんでしょうか。 例)1 if($a eq '1' and $b eq '1'){ 実行文; }else{ エラー文; } 例)2 ($a eq $b) and &Error('エラー。');
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
「($a eq $b) and &Error('エラー。');」 これ、本当に「and」でした? これだと、 「$aと$bが等しいときに「エラー。」と表示」しますが「等しくないときは次の文へ」いきます。 ここが、「or」だったら 「$aと$bが等しくない時に、「エラー。」と表示」します。 これは、処理の順番を利用した書き方で、「and」はandの左側が偽なら右は評価しません。 また、「or」は、左が真の場合右は評価されず、左が偽の場合に右側を評価した結果を判定しています。なので、「例)2」の「and」を「or」に変更すると、「例)1」の実行文が無い物と同じになります。
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.2
例)1 と 例)2 は、同じ意味ではありません。
お礼
ご教授頂きまして有難うございます。 ( )の中と外とで意味がかわるとかではなくて、真偽によって評価が変わるんですね。 且つ○○・・・として捉えていたので、こんがらがってきていました。 > これ、本当に「and」でした? 手元のCGIでは、($FORM{aaa} eq '') &Error('エラー'); として使われていまして、これはどのように考えれば良いのか迷っていた為、お恥かしながら質問させて頂いた次第です。 お蔭様で納得する事ができました。有難うございました。