Java中的i++和++i以及(i=i++,i爲0)

上代碼:

public class Test1 {
	public static void main(String[] args) {
		//1.   i=3   k = 5
		int i = 1;
		int k = i + ++i*i++;
		System.out.println("i:"+i+"    K:"+k);
		//2.i = 7
		i=1;
		i = i++ + i++ + ++i;
		System.out.println(i);
	}
}

只要牢記一句話,i++後++,++i先++

好接下來,開始。

對於 int k = i + ++i*i++;

   第一步:給在局部變量表的i賦值爲1,然後i入棧

 第二步:執行 + ++i,++i使得局部變量表中的值自增1,然後此時的i再入棧

第三步:執行*i++,先執行i++,i++使得,局部變量表中的i(2)先入棧,再將局部變量的i自增

第四步:操作數棧中按算符進行運算,結果爲5,再賦值給局部變量表中的k,所以最終,i爲3,k爲5.

對於:   i=1; i = i++ + i++ + ++i;


    第一步:給局部變量表i賦值,使得i爲1.執行i++,局部變量表i先入棧,i再自增1

第二步:執行 + i++,使得此時的i(2)入棧,然後局部變量表i再自增1

第三步:操作數對1+2進行運算後爲3,執行+ ++i,先對局部變量表i自增爲4,再入棧

第四步:對棧內數進行計算,然後出棧,賦值給局部變量表i,輸出

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章