Java实现行递增正方形数字图案代码问题求助
正方形数字图案打印问题修复
问题背景
要实现正方形数字图案打印:用while循环,以用户输入的n为边界,行变量i从1到n,每行打印n个对应行号的数字(比如n=4时,第一行1111,第二行2222)。但现有代码输出异常,每个数字单独占一行,无法实现连续显示。
原代码
Scanner s = new Scanner(System.in); int n = s.nextInt(); int i =1; while(i<=n){ int j = 1; while(j<=n){ System.out.println(i); j=j+1; } System.out.println(); i=i+1; }
问题根源
System.out.println()方法在输出内容后会自动添加换行符,所以每次打印数字i都会触发换行,导致每个数字单独占一行。
修正代码
import java.util.Scanner; public class SquareNumberPattern { public static void main(String[] args) { Scanner s = new Scanner(System.in); int n = s.nextInt(); int i = 1; while (i <= n) { int j = 1; while (j <= n) { // 用print()替代println(),输出后不换行 System.out.print(i); j++; } // 每行打印完成后换行 System.out.println(); i++; } s.close(); } }
关键修改点
- 内层循环中,将
System.out.println(i)替换为System.out.print(i),这样同一行的数字会连续输出,不会自动换行。 - 外层循环末尾的
System.out.println()保留,用于在每行所有数字打印完成后切换到下一行。 - 补充了
Scanner的关闭操作,避免资源未释放的问题。
内容的提问来源于stack exchange,提问作者Amrutha Junnuri
相关产品推荐
相关产品推荐

