為什么不用重新輸入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);
例如上面的幾行代碼,運(yùn)行正常,然后還計(jì)算出正確的結(jié)果來(lái)了。
沒(méi)有鍵入three=one+two、three+=one、、、等等就能完成重新賦值???
2019-01-01
代碼1:
System.out.println(three=one+two);
/* 此句的運(yùn)算過(guò)程:打印 three重新賦值為one+two的結(jié)果,即將three重新賦值為10+20,此時(shí)輸出結(jié)果為30,同時(shí)three的值為重新賦值為30*/
??????? System.out.println(three+=one);
/*此句的運(yùn)算過(guò)程:打印 three重新賦值為three+one的結(jié)果,即將three重新賦值為30+10,此時(shí)輸出結(jié)果為40,同時(shí)three的值重新賦值為40*/
??????? System.out.println(three-=one);
/*此句的運(yùn)算過(guò)程:打印 three重新賦值為three-one的結(jié)果,即將three重新賦值為40-10,此時(shí)輸出結(jié)果為30,同時(shí)three的值重新賦值為30*/
??????? System.out.println(three*=one);?
/*此句的運(yùn)算過(guò)程:打印 three重新賦值為three*one的結(jié)果,即將three重新賦值為30*10,此時(shí)輸出結(jié)果為300,同時(shí)three的值重新賦值為300*/
代碼2:
? ? ? ? three=one+two;//此句運(yùn)算過(guò)程:three重新賦值為one+two的結(jié)果,即將three重新賦值為10+20=30
? ? ? ? System.out.println("three=one + two ==>"+three);//打印此時(shí)的three,此時(shí)three=30
? ? ? ? three += one;//此句運(yùn)算過(guò)程:three重新賦值為three+one的結(jié)果,即將three重新賦值為30+10=40
? ? ? ? System.out.println("three += one ==>"+three);//打印此時(shí)的three,此時(shí)three=40,后面也是一樣的;
? ? ? ? three -= one;
? ? ? ? System.out.println("three -= one ==>"+three);
? ? ? ? three *= one;
? ? ? ? System.out.println("three *= one ==>"+three);
結(jié)論:兩種代碼雖然寫(xiě)法不同,但執(zhí)行起來(lái)的效果是一樣的,語(yǔ)句執(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);
在這些語(yǔ)句中,()里的語(yǔ)句依然可以運(yùn)算,直接將各運(yùn)算結(jié)果賦予three,每運(yùn)行一個(gè)語(yǔ)句即對(duì)three賦值一次。