Java使用do-while循环计数1-10,如何让前5、后5个数各占一行?
错误原因
- 你的代码中
if (x > 5)的判断逻辑会在x等于6到10的每一次循环中都触发,每次触发都会执行一次换行操作,所以从第6个数字开始,每打印一个数字就会换一次行,不符合你只换1次行的需求。 - 额外说明:你当前实现的计数功能不需要导入
Scanner和DecimalFormat类,也不需要实例化对应的key、df对象,删除这部分冗余代码不影响运行。
修正方法
只需要将判断条件从x > 5改为x == 6即可,因为x是在打印完当前值后才自增,打印完第5个数字时x刚好自增为6,这时候执行一次换行就足够,后续循环不会再触发换行逻辑,原代码中多余的continue也可以直接删除。
修正后的完整代码如下:
public class Hello_World { public static void main(String[] args) { int x = 1; do { System.out.print(x + " "); x++; // 仅在打印完前5个数字后换1次行 if (x == 6) { System.out.println(""); } } while (x <= 10); } }
运行后输出结果为:
1 2 3 4 5 6 7 8 9 10
内容的提问来源于stack exchange,提问作者RAnderson810
相关产品推荐
相关产品推荐

