当前位置:编程学习 > JAVA >>

Java 中++操作小问题

int count = 0;
        for (int i = 0; i < 10; i++)
        {
            count = count++;
        }
        System.out.println(count);



打印出的count=0,有哪位大神可以解释下 --------------------编程问答-------------------- 每次count都是先将0赋给左边的count,然后死循环下去,直到跳出for循环为止
改为 count=++count; --------------------编程问答-------------------- 此题已经出现无数次 --------------------编程问答--------------------
引用 2 楼 fudongrifdr 的回复:
此题已经出现无数次

元首,看看这个现象,有没遇到过,可以给个解释不 firefox中servlet请求两次 --------------------编程问答-------------------- 恩,楼上正解,楼主可以在循环里面加上打印观察count的值:System.out.println("i=:"+i+" "+count); --------------------编程问答-------------------- 每次赋值后,不是执行count++吗,执行完后的值不是会再次赋值给count吗,因为count++不就是count=count+1吗

引用 1 楼 magi1201 的回复:
每次count都是先将0赋给左边的count,然后死循环下去,直到跳出for循环为止
改为 count=++count;
--------------------编程问答-------------------- 能否给个详细的解析,如内存中详细的执行顺序

引用 2 楼 fudongrifdr 的回复:
此题已经出现无数次
--------------------编程问答-------------------- count++ 后,没有再将值赋给count,左边的count接收到的一直是 count++ 之前的值,也就是 0  --------------------编程问答-------------------- 先赋值,再+1 --------------------编程问答-------------------- 那怎么解释如果单纯的执行count++后,count的值会变化呢,应该是count执行+1后,然后再次赋值给count吧

引用 7 楼 magi1201 的回复:
count++ 后,没有再将值赋给count,左边的count接收到的一直是 count++ 之前的值,也就是 0 
--------------------编程问答-------------------- 推荐楼主看这个 java内存分配图
还有百度百科 堆栈 应该会有收获的  --------------------编程问答-------------------- 不要纠结此类问题。没意思
正常用就行,改成count++
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,