关于#java#的问题:请问为什么以下代码输出的 i 是 0

请问为什么以下代码输出的 i 是 0 ,而不是 1 呢

    public static void main(String[] args) {
        int i = 0;
        i = i++;
        System.out.println(i);

因为 i++ 这个表达式的含义是,先返回 i 的原始值,再将 i 的值加 1。

所以在上面的代码中,先将 i 的值 0 赋给了 i ,然后再将 i 的值加 1。所以最终的输出结果是 0。

如果改成 i = ++i;,那么最终的输出结果将是 1。因为先将 i 加 1,再将加完 1 之后的值赋给了 i。

i=i++
表达式i++的值等于i,所以i=0
如果是a=i++,那么a=0,i=1 ,含义:先把i++表达式的值等于a,i++表达式的值等于i,再计算i=i+1,则i=1
如果是a=++i,那么a=1,i=1,含义:先计算i=i+1,然后把计算结果赋给a,即++i表达式的值为1