作者Luckypenguin (Avow)
看板java
標題[問題] 運算子優先權問題
時間Fri Jul 16 11:56:43 2010
各位高手好~
int a=5;b=7,c;
c=a++ + b++;
這樣的程式執行順序應該是
先執行c=a+b 再執行 a++, b++
執行結果c=12 a=6 b=8
可是為什麼在java的運算子優先順序裡
放在變數 "右邊"的++ 優先順序會"高於" +(plus)
因為照這個結果來說++的優先等級應該會比較低才對吧?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.236.24
※ 編輯: Luckypenguin 來自: 140.115.236.24 (07/16 11:57)
1F:→ pico2k:請去看bytecode... 07/16 12:08
2F:→ xlk:這跟++a順序高於plus或為什麼吃飯一樣沒有為什麼 要用心記住喔 07/16 14:56
※ 編輯: Luckypenguin 來自: 140.115.236.24 (07/16 16:29)
3F:→ Luckypenguin:++a會先執行所以優先等級高這個我比較能體會 07/16 16:30
4F:→ Luckypenguin:a++比較晚執行但是為何他優先等級比+高 07/16 17:08
5F:→ hilorrk:++a和a++的差別也許不是在執行的早晚 而是做的動作的差別 07/16 18:22
6F:→ AmosYang:去看bytecode... (google javap) ... 07/16 18:49
7F:→ Luckypenguin:我瞭解了 感謝大家! 07/16 20:42
8F:→ sbrhsieh:precedence 是指 operator 與 operand 結合的順序 07/17 18:36