为什么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);
}
...全文
2263 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
天之上有什么 2017-12-06
  • 打赏
  • 举报
回复
你是代入C++中的用法了?java中对自增的处理不一样,count=count++;count++是一个表达式有返回值,返回值为count自增前的值0;你换成count++或者count=++count;

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧