於是我在一個比較科學的中期去年有這個問題,我仍然想不通爲什麼& & B和B & &一個不會計算出相同的結果在Java中,a和b是布爾值,a && b和b && a會評估相同的結果嗎?
我看到它的方式中,有4種可能的情況:
- A是TRUE,並且B爲真:
- 真& &真爲Tr UE
- A是TRUE,並且B爲FALSE:
- 真& &假的就是假和假& &真還是假
- A是假的,且B爲TRUE:
- 假& &真是假和真& &假的就是假
- A是假,B是FALSE:
- 假& &假的就是假
然而,中期的修正和教授說,一個& & b和b & & a並不總是評估相同的結果。
編輯:我不明白這是如何重複的「操作員短路」...在任何情況下,我都不會問關於AND操作的第一部分的問題......我問的都是部分和這是重複的「原始」問題不能回答我的問題。
取決於'a'和'b'代表什麼。可能是'a'或'b'可能會修改另一個表達式的狀態 – SomeJavaGuy
如果a和b是變量,那麼&& b和b && a **當然必須**給出相同的結果。但如果這些實際上是方法調用,事情就會不同(因爲副作用)。 – GhostCat
那麼,**權限**不應該被理解爲取代**原因**。換句話說:告訴你的教授他應該證明他的陳述,或者接受他是錯的。也許你會爲我找到一些關於politer的話。 – GhostCat