如何用Java打印1-50的偶数,且每10个偶数换一行?
解决1-50偶数打印且每10个换行的问题
先看你写的代码存在几个问题:
- 代码未闭合:
for循环和if语句都缺少结束的大括号},编译会直接报错 - 逻辑绕弯:用
counter计数每两个数取一个的方式,不如直接判断偶数直观;而且当前代码里用println会输出一个偶数就换行,不符合每10个换行的需求 - 未实现每10个偶数换行的核心逻辑
下面是实现需求的正确代码:
int n = 50; int evenCounter = 0; // 专门计数已输出的偶数数量 System.out.println("Even Numbers from 1 to " + n + " are: "); for (int i = 1; i <= n; i++) { // 直接判断当前数是否为偶数 if (i % 2 == 0) { System.out.print(i + " "); evenCounter++; // 每输出10个偶数就换行 if (evenCounter % 10 == 0) { System.out.println(); } } }
代码逻辑说明:
- 用
i % 2 == 0判断偶数,比计数跳步的方式更清晰易懂,也不容易出错 - 用
evenCounter统计已输出的偶数个数,每次输出偶数后递增计数 - 当
evenCounter % 10 == 0时,说明已输出10个偶数,执行换行操作 - 用
System.out.print输出偶数(不自动换行),仅在满足条件时手动换行,保证格式符合要求
你提到的%10==0思路是对的,但要注意是统计偶数的数量后取模,而非对偶数本身取模——虽然偶数本身是2的倍数,每10个偶数的最后一个(20、40等)对10取模也为0,但统计数量的方式更通用,比如需求改成每8个换行时,直接改数字即可适配。
内容的提问来源于stack exchange,提问作者4shotssss
相关产品推荐
相关产品推荐

