為什么不用重新輸入theree=one+two等就能重新賦值
public class HelloWorld{
??? public static void main(String[] args) {
?? ???? int one = 10 ;
??????? int two = 20 ;
??????? int three = 0 ;
??????? System.out.println(three=one+two);
??????? System.out.println(three+=one);
??????? System.out.println(three-=one);
??????? System.out.println(three*=one);
例如上面的幾行代碼,運行正常,然后還計算出正確的結(jié)果來了。
沒有鍵入three=one+two、three+=one、、、等等就能完成重新賦值???
2019-01-01
代碼1:
System.out.println(three=one+two);
/* 此句的運算過程:打印 three重新賦值為one+two的結(jié)果,即將three重新賦值為10+20,此時輸出結(jié)果為30,同時three的值為重新賦值為30*/
??????? System.out.println(three+=one);
/*此句的運算過程:打印 three重新賦值為three+one的結(jié)果,即將three重新賦值為30+10,此時輸出結(jié)果為40,同時three的值重新賦值為40*/
??????? System.out.println(three-=one);
/*此句的運算過程:打印 three重新賦值為three-one的結(jié)果,即將three重新賦值為40-10,此時輸出結(jié)果為30,同時three的值重新賦值為30*/
??????? System.out.println(three*=one);?
/*此句的運算過程:打印 three重新賦值為three*one的結(jié)果,即將three重新賦值為30*10,此時輸出結(jié)果為300,同時three的值重新賦值為300*/
代碼2:
? ? ? ? three=one+two;//此句運算過程:three重新賦值為one+two的結(jié)果,即將three重新賦值為10+20=30
? ? ? ? System.out.println("three=one + two ==>"+three);//打印此時的three,此時three=30
? ? ? ? three += one;//此句運算過程:three重新賦值為three+one的結(jié)果,即將three重新賦值為30+10=40
? ? ? ? System.out.println("three += one ==>"+three);//打印此時的three,此時three=40,后面也是一樣的;
? ? ? ? three -= one;
? ? ? ? System.out.println("three -= one ==>"+three);
? ? ? ? three *= one;
? ? ? ? System.out.println("three *= one ==>"+three);
結(jié)論:兩種代碼雖然寫法不同,但執(zhí)行起來的效果是一樣的,語句執(zhí)行的邏輯也是基本相同 。
2018-12-28
? ?System.out.println(three=one+two);
??????? System.out.println(three+=one);
??????? System.out.println(three-=one);
??????? System.out.println(three*=one);
在這些語句中,()里的語句依然可以運算,直接將各運算結(jié)果賦予three,每運行一個語句即對three賦值一次。