2016-07-27 7 views
-2

だから私は昨年コンプのSCI中期にこの質問を持っていた& & BとB & & は同じ結果に私はそれを参照してくださいJavaでは、aとbはブール値です。&& bとb && aは同じ結果になりますか?

方法を評価しないだろう、なぜ私はまだ把握することはできません、4つの可能な場合がある:

  1. AはTRUEであり、Bは真である:
    • 真& & trueは、TrのありますUE
  2. A TRUEであり、BはFALSEです: :
    • 真& &偽が真& &偽とFalseでも偽
  3. AがFALSEであり、BはTRUEです
    • 偽& &真は偽と真である& &偽AがFALSEであり、BはFALSEです
  4. Falseです:
    • 偽& & Falseが中期の補正と教授は言う、

Falseですけれども& & BとB & &は、常に同じ結果に評価されていないこと。

EDIT:これは「オペレータの短絡」の複製ではありません... AND演算の最初の部分について質問しているわけではありません...私は両方について尋ねていますこれが重複している「元の」質問は私の質問に答えません。

+3

'A'と 'B'が表すだろうか依存します。 **同じ結果を与え、bは&& BとB && **必見もちろん、その後、変数であれば、 'A'または 'B'のいずれかが、他の発現 – SomeJavaGuy

+5

の状態を変更する可能性がある可能性があります。しかし、それらが実際にメソッド呼び出しである場合、状況は異なります(副作用のため)。 – GhostCat

+0

さて、**権限**は、**理由**を置き換えるために理解されるべきではありません。言い換えれば、教授に彼の声明を証明するか、彼が間違っていると受け入れるべきだと教えてください。たぶんあなたは私のために懐疑的な言葉を見つけるでしょう。彼が間違っていると述べる – GhostCat

答えて

0

はいあなたは同じ結果を得ることができます。しかし、a&&bがあり、aがFALSEの場合、Javaはbを評価せず、結果はFALSEと表示されます。

+0

最終結果は同じです。 –

+1

@VaibhavBajajは必ずしもそうではありません。 ((j + = 1)> 2)&&(i-1 <3))vs if((i-1 <3)&&((j + = 1) > 2)) – Stultuske

関連する問題