问题描述
intcount=0;for(inti=0;i<10;i++){count=count++;}System.out.println(count);打印出的count=0,有哪位大神可以解释下
解决方案
解决方案二:
每次count都是先将0赋给左边的count,然后死循环下去,直到跳出for循环为止改为count=++count;
解决方案三:
此题已经出现无数次
解决方案四:
引用2楼fudongrifdr的回复:
此题已经出现无数次
元首,看看这个现象,有没遇到过,可以给个解释不
解决方案五:
恩,楼上正解,楼主可以在循环里面加上打印观察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
解决方案十一:
推荐楼主看这个还有百度百科堆栈应该会有收获的
解决方案十二:
不要纠结此类问题。没意思正常用就行,改成count++
时间: 2024-09-14 19:21:19