java里的i++与i=i++会有怎样的结果?JVM做了什么?

本文深入探讨了Java中for循环计数的常见误区,通过具体代码示例,解释了为何`count = count++`在循环中始终为0的原因,并对比了`count++`与`++count`的不同行为,帮助读者理解并避免此类编程陷阱。

先来看下这段代码:

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

结果是什么呢?结果是10?不对,结果是0。为什么呢?
我们来看看i++Jvm做了什么。
步骤一:JVM将i的值,而不是引用,拷贝到临时变量区
步骤二:将count值加一
步骤三:返回临时变量区的值。
而i=i++;相当于多了一步,将i=i(这个"i"是临时变量区的值,为0),所以i=i++,在这里一直都是0。
所以i++是先返回值,再赋值。
而++i则相反。所以上面要返回想要的值,可以改为count++;或者count=++count;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值