こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PEAL if AA or BB

######## AAかBBがあったらprint
PEALで  AA || BB  
AA か BB って事はわかりましたが
AA と BB 両方ともあった場合は?

######## AAかBBがあったらprint
if (($in{'AA'}) || ($in{'BB'})) {
print "$in{'AA'}";
print "$in{'BB'}";
}

投稿日時 - 2008-06-19 02:57:05

QNo.4111927

困ってます

質問者が選んだベストアンサー

英語とは思わずに、「プログラム」だと割り切ったほうが良いかも。

if( AA || BB )
のような場合、
AAが成り立てば、条件をクリアし、BBの条件は無視されます。
AAが成り立たなければ、続いて、BBを評価し、その結果で判断します。
噛み砕いていうと、「AAがダメならBBなら?」が近いと思います。

if( AA && BB )
のような場合、
AAが成り立てば、続いてBBを評価し、判断します
AAが成り立たなければ、その時点で終了し、BBの条件は無視されます。

投稿日時 - 2008-06-19 15:53:30

お礼

納得しました! ありがとうございます

投稿日時 - 2008-06-20 07:08:34

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

>でも「どっち食べる?」とかって聞かれたら普通どちらかのみですよね・・・

その質問は、残ったほうを聞いた人が食べるという前提ですよね。
プログラムで、x==3 || x==5 だと両方が同時に真となることはないわけですが、そういうのと同じです。
残った方を捨てる前提で「どっち食べてもいいよ」なら両方食べてもOKです。

「千円くれるか晩飯おごってくれたら頼みを聞く」と言って、千円もらった上に晩飯おごってくれたらどうしますか?

投稿日時 - 2008-06-19 21:31:37

お礼

もう少し色々勉強してみます。またよろしくお願いします。
例文:面白いですねw

投稿日時 - 2008-06-20 07:12:05

ANo.2

>AA と BB 両方ともあった場合は?
これは、AA と BB 両方ともあった場合のみ、なにかしたいということですよね。
if (($in{'AA'}) && ($in{'BB'})) {
なにかの文;
}
となります。
尚、PEALはPERLのほうがよいかと思います。

投稿日時 - 2008-06-19 09:17:59

補足

あ、違うんですよ。
or の場合は、 and も兼ねるのかって事なんです・・・
--------------
AA || BB
--------------
AA BB 以外の場合は、NO-print
AA の場合は、print
BB の場合は、print
AA と BB の場合は?どうなのかなって・・・

PERLですね・・・ 恥かしい(≧∀≦)ノ

投稿日時 - 2008-06-19 14:12:35

ANo.1

AA か BB というのは当然ながら AA BB 両方ともという場合も含まれます。
日本語(英語も)と同じです。

投稿日時 - 2008-06-19 03:17:33

お礼

そうなんですか! ありがとうございます。
でも「どっち食べる?」とかって聞かれたら
普通どちらかのみですよね・・・

投稿日時 - 2008-06-19 14:04:24