You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java实现输入数字后逐行递增打印序列的问题求助

解决Java逐行打印递增序列的问题

你的需求是输入一个数字后,逐行打印从1到当前行数的递增序列,但现有代码仅能输出一行完整序列,问题出在只用了单层循环拼接所有数字,没有控制逐行输出的逻辑。

问题分析

原代码通过一次循环把1到输入数字的所有值拼接到一个StringBuilder,最后只打印一次,自然只有一行。要实现逐行输出,需要两层嵌套循环:外层循环控制行数,内层循环生成当前行的数字序列。

修改后的高效版代码

使用StringBuilder减少频繁IO操作,适合处理较大的输入数字:

import java.util.Scanner;
public class Series {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Insert number ");
        int a = sc.nextInt();
        
        // 外层循环控制要打印的行数,从1到输入的数字a
        for (int row = 1; row <= a; row++) {
            StringBuilder sb = new StringBuilder();
            // 内层循环生成当前行的数字序列
            for (int num = 1; num <= row; num++) {
                sb.append(num);
                // 非末尾数字添加空格分隔
                if (num != row) {
                    sb.append(" ");
                }
            }
            // 打印当前行并换行
            System.out.println(sb.toString());
        }
        sc.close();
    }
}

简洁版代码(直观易读)

如果输入数字不大,也可以直接逐次打印,代码更简洁:

import java.util.Scanner;
public class Series {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Insert number ");
        int a = sc.nextInt();
        
        for (int row = 1; row <= a; row++) {
            for (int num = 1; num <= row; num++) {
                System.out.print(num);
                // 数字间加空格,最后一个数字不加
                if (num != row) {
                    System.out.print(" ");
                }
            }
            // 每行结束后换行
            System.out.println();
        }
        sc.close();
    }
}

代码说明

  • 外层循环变量row从1到输入的数字a,每一次循环对应一行输出
  • 内层循环变量num从1到当前的row,负责生成当前行的数字序列
  • 两种方式都处理了数字间的空格分隔,避免行尾出现多余空格
  • 最后关闭Scanner资源,养成良好的资源管理习惯

内容的提问来源于stack exchange,提问作者matteo panaro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 15:22:16