1
我試圖瞭解評價爲下面的Java代碼的輸出是5的順序:的Java運算符優先級與+ =和++(前遞增)
int a = 1;
a += 2 + ++a;
System.out.println(a);
我的運算符優先級的理解(最高首先列出)是:
++ 2
+ 4
+= 14
從這個名單
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
評估最終操作員(+ =)時,是否在評估+ =開始時不是a 2的值?
形式的化合物,賦值表達式'E1運= E2'相當於E1 =((E1)op(E2))'。 – 2014-09-01 22:31:42
如果對_language_有疑問,請查看語言規格 – jdphenix 2014-09-01 22:42:15
瞭解語言的功能非常有趣。但是:在真實代碼中,最好的做法是不要將增量/減量運算符作爲較大表達式的一部分進行混合,即使語言恰好允許它。 – 2014-09-02 15:37:18