i++和++i
/** * i++,是先赋值,后加一,++i是先加一后赋值。 * i=++i,是i在内存自增一,然后进寄存器,最后赋值的时候i赋值就是1,第二个就是2,以此类推; * i=i++, 是赋值之后再自增1,i=0这个值先进寄存器,然后i在内存自增1,最后赋值的时候寄存器出来的0值会冲掉1值成为最终结果,所以无论多少个结果都会是0。 */ // 0 @Test public void character1(){ int a = 0; for(int i = 0; i<99; i++){ a = a++; } System.out.println(a); } // 99 @Test public void character2(){ int a = 0; for(int i = 0; i<99; i++){ a = ++a; } System.out.println(a); } // 99 98 @Test public void character3(){ int a = 0; int b = 0; for(int i = 0; i < 99; i++){ a = a++; b = a++; } System.out.println(a+","+b); }