为什么if语句里面不能用自增啊?

尹舟 尹舟 2018-07-03 02:29:31
今天编写java程序,实现输出1~100中所有不能被7整除的数 ,并求其和。 要求:每输出4个数据换行显示。
然后一直达不到效果,最后发现是自增出了问题。各位大神知道为什么吗?下面发程序运行后的效果图


自增就不能运行成功,为什么?
public static void main(String[] args) {
int d=0;int b=0;
for(int a=1;a<101;a++) {

if((a%7)!=0) {b=(b+1);
System.out.print(a+"\t");d+=a;



if((b%4)==0) {
System.out.println("");
}
}
}

System.out.println(d);



}

}
...全文
579 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
尹舟 尹舟 2018-07-03
  • 打赏
  • 举报
回复
我把代码b+1换成b++还是不行啊
FrankWeizq 2018-07-03
  • 打赏
  • 举报
回复
int b = 1;
a = ++b; 结果: a值是2 ++b是自身先加1再赋值给a;
a = b++; 结果: a值是1 b++是先赋值再自加1;
yldongfang402 2018-07-03
  • 打赏
  • 举报
回复
b=(b++) 的意思是将b++这个表达式的值赋给b,而后缀的++操作符的意思是将b当前的值作为b++这个表达式的返回值,然后将变量b加1。b初始是0,所有b++表达式的返回值是0,虽然b++之后b变为1了,但是你又用b++的返回值重新把b的值置为0 了,所以这样b始终是0。你可以换成b=(++b)就可以了,其实直接用b++就行了,++操作符本身就会改变b的值,不需要再赋值了
鱿鱼ing 2018-07-03
  • 打赏
  • 举报
回复
深入了解一下++的含义 b=(b++);导致 b永远是0 其实这个地方将 b=(b++); 改成 b++; 才能实现b自增

50,523

社区成员

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

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