i 與 i的區別

2021-08-07 19:44:36 字數 754 閱讀 1666

public class test

static int x,y;

public static void main(string args)

public static void mymethod( )

}

選項:

compiletime error

prints:1

prints:2

prints:3

prints:7

prints:8

解析:

1.jvm載入class檔案時,就會執行靜態**塊,靜態**塊中初始化了乙個變數x並初始化為5,由於該變數是個區域性變數,靜態**快執行完後變被釋放。

2.申明了兩個靜態成員變數x,y,並沒有賦初值,會有預設出值,int型別為0,

3.執行x--操作,變數單獨進行自增或自減操作x--和--x的效果一樣,此時x變為了-1

4.呼叫mymethod()方法,在該方法中對x和y進行計算,由於x和y都是靜態成員變數,所以在整個類的生命週期內的x和y都是同乙個

5.y=x++ + ++x可以看成是y=(x++)+(++x),當++或者--和其它變數進行運算時,x++表示先運算,再自增,++x表示先自增再參與運算

所以就時x為-1參與運算,然後自增,x此時為0,++x後x為1,然後參與運算,那麼y=-1+1就為0,此時x為1

6.執行並列印x+y + ++x運算方式和第5步相同,最後計算結果就為3.

i 與 i的區別

今天在寫題的時侯在 i與i 上遇到了麻煩,具體就是我在寫乙個迴圈語句時因為沒有弄清楚i 與 i的區別而導致的錯誤。之前對於i 與 i的使用都只侷限於如下方式 for j 2 j 9 j for j 2 j 9 j 這樣使用好像兩者並沒有什麼區別。然而當我像下面這樣用時卻出了問題 for j i,t ...

談談i 與 i的區別

在通常情況下i 與 i是一樣的,可以等價替換的,例如在for迴圈裡 for int i 0 i 10 i 與for int i 0 i 10 i 是一樣的 但是也用不同的地方 int flag 0 for int i 0 i 10 i num flag i 先賦值 後flag加一 與for int ...

筆記 i 與 i的區別

i 是先進行了賦值在自增 首先i 1因為是先賦值所以會將1賦值給j,所以j 1i 自增,也就是i 2,會將值賦給i,所以i 2int i 1 int j i system.out.println j j 輸出 j 1 system.out.println i i 輸出 i 2 i是先自增在進行賦值 ...