为什么count的输出结果为0?

qq_40306767 2017-12-06 11:00:42
public void testFile(){
int count=0;
for(int i=0;i<100;i++){
count = count++;
}
System.out.println(count);
}
...全文
1227 11 点赞 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
public_TIM 2017-12-07
count++是一个表达式 返回的就是没+1之前的count值,所以你无论循环多少次都是0,你可以改成count=++count;这个表示count+1后的值。或者直接count++也行,不要赋值。
  • 打赏
  • 举报
回复
自由自在_Yu 2017-12-07
public void testFile(){
int count=0;
for(int i=0;i<100;i++){
 count++;//count = count+1;
}
System.out.println(count);
}
  • 打赏
  • 举报
回复
qq_40306767 2017-12-06
  • 打赏
  • 举报
回复
waxf523 2017-12-06
你写个count += j,我还可以理解。但你在循环中写count = count++;是什么鬼
  • 打赏
  • 举报
回复
thinking code 2017-12-06
帮你找得个答案
a=a++;分解如下:
temp=a;
a++;
a=temp;
  • 打赏
  • 举报
回复
yannsPeng 2017-12-06
  • 打赏
  • 举报
回复
事已至 2017-12-06
count++就代表count=count+1了,多写个count=
  • 打赏
  • 举报
回复
sinat_36710456 2017-12-06
count = ++count 说明:++count返回的是count自增后的值;count++返回的是count自增前的值
  • 打赏
  • 举报
回复
java竹雨 2017-12-06
你这代码写的 也是人才了
  • 打赏
  • 举报
回复
逗比123号 2017-12-06
count = ++count :

 IINC 1 1  //count自增,count=1
 ILOAD 1 //加载count到操作数栈,操作数栈为1
 ISTORE 1 //把操作数栈的数据存到局部变量表的count里,count=1
count = count++ :

 ILOAD 1 //加载count到操作数栈,操作数栈为0
 IINC 1 1  //count自增,count=1
 ISTORE 1 //把操作数栈的数据存到局部变量表的count里,count=0
  • 打赏
  • 举报
回复
你是代入C++中的用法了?java中对自增的处理不一样,count=count++;count++是一个表达式有返回值,返回值为count自增前的值0;你换成count++或者count=++count;
  • 打赏
  • 举报
回复
相关推荐
发帖
Java
加入

4.8w+

社区成员

Java相关技术讨论
申请成为版主
帖子事件
创建了帖子
2017-12-06 11:00
社区公告
暂无公告