int a=1;
System.out.println(a=2);//2
有點不明白,是不是(a=2)這個整體表現出的就是2
a=2是一個左值表達式,返回值為a.
你的寫法相當於先對a賦值2,再使用a作為輸出的參數。
支持這種說法。
首先要明白表達式的含義。表達式本身會返回某個值,對於賦值表達式,返回的結果為值本身。
Java表達式是變量、常量、運算符、方法調用的序列,它執行指定的計算並返回某個確定的值。
其中,運算符按操作數的數目:有一元運算符(++、--)、二元運算符(+、-、>等等)和三元運算符(?:),它們分別對應一到三個操作數。
表達式一般按運算符來分:
算術表達式(float x=8.3f、i++)、
關系表達式(3>7、3<7)、
布爾邏輯表達式((5>4)&&true、!false)、
位運算表達式(a=34^3)、
賦值表達式、
條件表達式(b=100>89?a=ture:a=false)
以及復合表達式。
還有一種叫“表達式語句”,就是在表達式後加上分號作為語句來使用。(int i=123;)