Java代码中continue语句为何表现得像break?循环异常排查
问题原因分析
你的代码陷入了死循环,导致输出停在12,具体原因:
- 当
i等于3时,if(i==3)条件触发,执行continue语句——这个语句会直接跳回while循环的条件判断处,完全跳过了后面的i++代码。 - 此时
i的值始终保持为3,循环条件i<=9永远成立,程序一直在循环判断i==3然后执行continue,再也不会执行输出或递增操作,所以输出到12后就停滞了。
修正方案
可以通过两种方式修复:
方案1:在continue前先递增i
public class Loops { public static void main(String args[]) { int i = 1; while (i<=9){ if (i==3){ i++; // 先让i递增,再跳过后续代码 continue; } System.out.print(i); i++; } } }
方案2:将i++移到循环开头,避免被跳过
public class Loops { public static void main(String args[]) { int i = 0; while (i<9){ i++; // 先递增,再判断 if (i==3){ continue; } System.out.print(i); } } }
内容的提问来源于stack exchange,提问作者ByteStorm
相关产品推荐
相关产品推荐

