为什么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);



}

}
...全文
685 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自增
内容概要:本文介绍了SB200工业级单芯片RS232转RS422/RS485转换收发器的技术特性与优势。该器件采用QFN-40封装,具备端口供电功能,无需外接电源即可工作,支持RS422与RS485多节点组网,并实现自动方向控制,无需额外的DTR或RTS控制信号。SB200最高支持921.6 Kbps的波特率,在1.2km长距离传输下仍能稳定运行,显著优于传统低价转换器。文档还展示了SB200在不同模式下的性能表现,包括RS422、RS485回显与非回显模式,并提供与其他产品的详细对比,突出其在速率、多点通信、终端电阻配置和工业级温度范围等方面的优势。 适合人群:从事工业通信、嵌入式系统开发及相关硬件设计的研发人员,特别是对串行通信接口有应用需求的工程师;适用于有一定电子技术基础的技术支持或产品选型人员。 使用场景及目标:①用于工业现场长距离、高可靠性的串行通信部署;②替代传统需外部供电和手动方向控制的转换器,简化系统布线与维护;③应用于支持多点组网、高速数据传输的RS485/RS422网络中,提升通信效率与稳定性。 阅读建议:在阅读过程中应重点关注SB200的自动方向控制机制、端口供电能力及其在不同通信模式下的性能参数,结合实际应用场景进行器件选型评估,并参考对比表格识别其相对于低端产品的综合优势。 如需SB300数据手册与其他详细资料,欢迎随时咨询北京博控自动化技术有限公司索取。
内容概要:本文围绕基于二阶扩展卡尔曼滤波(Second-order Extended Kalman Filter, Second-order EKF)的锂电池荷电状态(State of Charge, SOC)估计方法开展系统性研究,采用Matlab平台进行建模与仿真分析,旨在提升锂电池SOC估算的精度与动态适应能力。文章深入阐述了二阶EKF相较于传统一阶EKF在处理电池非线性动态特性方面的理论优势,通过引入更高阶泰勒展开项,有效降低线性化误差,从而提高状态估计的准确性。研究构建了适用于锂电池的等效电路模型(ECM),结合实测充放电实验数据,在多种动态工况下验证了该方法在SOC估计中的有效性与鲁棒性。同时,论文系统比较了卡尔曼滤波家族中多种算法(如标准卡尔曼滤波KF、无迹卡尔曼滤波UKF、扩展卡尔曼滤波EKF、粒子滤波PF等)在电池状态估计中的性能差异,突出二阶EKF在兼顾计算效率与估计精度方面的优越性,尤其适用于强非线性电池系统的实时SOC估计任务。; 适合人群:具备控制理论、现代信号处理、非线性系统建模或电池管理系统(BMS)相关基础知识,从事新能源汽车、储能系统、电力电子与智能电网等领域研究的硕士/博士研究生、科研人员及工程技术人员。; 使用场景及目标:①在锂电池管理系统中实现高精度、高稳定性的实时SOC在线估计;②为电池健康状态(SOH)、剩余使用寿命(RUL)等关键状态参数的联合估计提供可靠的初始状态与误差协方差信息;③作为科研与工程实践的重要参考,用于复现、改进或优化现有非线性滤波算法,推动其在复杂电化学系统状态估计中的应用发展。; 阅读建议:建议读者结合提供的Matlab代码进行仿真实践,重点剖析二阶EKF的数学推导过程、系统状态空间模型的构建方法、过程与观测噪声的合理设定,并通过与UKF、EKF等算法的仿真结果对比,深入理解其在不同工况下的适用边界与优化潜力,进而掌握非线性滤波器在工程应用中的设计要点与调参技巧。

51,409

社区成员

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

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