Java实现1-100数字每20个换行(for循环):修复无限循环
修复输出1-100数字每20个换行的无限循环问题
你的代码陷入无限循环的核心原因是内层for循环里手动重置了计数器变量:当counter == 20时,你把counter设回1,导致内层循环的终止条件counter <= 20永远无法触发——counter会在1到20之间无限循环,外层的x根本没机会继续递增,整个程序卡死。
修复方案1:用单个计数器跟踪输出数量
去掉多余的内层循环,只用一个外层循环遍历1到100,用计数器记录当前已输出的数字个数,每满20个就换行并重置计数器:
public class zahlen1_bis_100 { public static void main(String[] args) { int counter = 0; for (int x = 1; x <= 100; x++) { System.out.print(x + " "); counter++; // 每输出20个数字换行并重置计数器 if (counter == 20) { System.out.println(); counter = 0; } } } }
修复方案2:用取模运算简化逻辑
不需要额外的计数器,直接通过判断当前数字是否是20的倍数来换行,代码更简洁:
public class zahlen1_bis_100 { public static void main(String[] args) { for (int x = 1; x <= 100; x++) { System.out.print(x + " "); // 当数字是20的倍数时换行 if (x % 20 == 0) { System.out.println(); } } } }
两种方案都能实现需求,方案2更简洁,方案1的计数器方式在需要自定义分组数量时更直观灵活。
内容的提问来源于stack exchange,提问作者Jacob J.
相关产品推荐
相关产品推荐

