java中 i++ 与 ++i

来源:互联网 发布:java windows换行符 编辑:程序博客网 时间:2024/06/05 05:32

今日于国图看书,发现了些知识点,力温故知新。

先看代码:

public static void main(String[] args) {int i = 10;i = ++i;System.out.println("++i对i的赋值:" + i);int j = 10;j = j++;System.out.println("j++对j的赋值:" + j);}

输出结果

++i对i的赋值:11
j++对j的赋值:10

按照之前的知识,++前置,代表变量先进行加1操作,然后参与运算,于是++i之后,i的值为11 , 这符合逻辑。j++,表示该变量先参与运算,再对自己进行加1操作。

但是上述程序的第二行输出,明显与之前知识不符。按照之前的知识,j++之后j的值变为11,但是输出结果为11。

其实,无论++是后置还是前置,都是先将变量进行加1操作,只不过参与运算的是不是变量而已。后置++先将变量的值赋给一个变量,然后用这个变量参与运算。

j = j++  相当于:

int temp = j ; j = j + 1;j = temp;
于是,第二个输出为10。

int k= m++ * 30相当于:

int temp = m;m = m + 1;k = temp * 30;





0 0
原创粉丝点击