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);
    }

 

posted @ 2020-03-03 00:16  北极star  阅读(187)  评论(0编辑  收藏  举报