Java循环中break语句未生效、多执行System.out.print问题求助
问题原因排查
- 执行顺序逻辑错误:
break终止判断放在了num自增、数值累加、打印语句的前面,当num值为495时进入循环,首先判断num == 500不成立,不会触发终止逻辑,后续num自增为500后直接执行打印语句,就会输出多余的500 +内容。 - 数值累加逻辑偏差:原有代码会将500也计入总和
sum,不符合打印到495就停止的需求。
修复方案
调整判断语句的位置,在num自增完成后立刻做终止校验,触发阈值直接跳出循环,不执行后续的累加和打印操作,修复后的代码如下:
class Main { public static void main(String[] args) { int num = 0, sum = 0; while (sum <= 25250) { num = num + 5; // 自增后先判断是否到达终止值,达标直接跳出 if (num == 500) break; sum = sum + num; System.out.print( num + " + " ); } System.out.print( " = " + sum); } }
修改后运行,最后一次打印的数值为495,总和也仅累加至495,符合预期。
内容的提问来源于stack exchange,提问作者Blank
相关产品推荐
相关产品推荐

