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

如何在Java中无需声明初始化数组打印1-9组成的3×3二维数组

问题

我现有一段可打印1-9组成的3×3矩阵的Java代码,如下所示:

// declare and initialize a 3x3 matrix
int matrix[][] = 
{ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };

// display matrix using for loops
// outer loop for row
for(int row = 0; row < matrix.length; row++) {
  // inner loop for column
  for(int column=0; column < matrix[row].length; column++) {
    System.out.print(matrix[row][column] + " ");
  }
  System.out.println(); // new line
}

注:原代码中row =-0为笔误,已修正为row = 0

我希望无需声明和初始化数组,就能打印出由1-9组成的3×3二维数组,请问该如何实现?

解决方案

你可以通过计算行列对应的数值或直接输出格式化内容来实现,无需提前创建数组。以下是几种实用的实现方式:

方法一:基于行列索引计算

利用行号*3 + 列号 +1的公式直接生成对应数字,逻辑清晰直观:

// 外层循环控制行,共3行
for (int row = 0; row < 3; row++) {
    // 内层循环控制列,每行3列
    for (int col = 0; col < 3; col++) {
        // 计算当前位置的数字:行号*3 + 列号 +1
        System.out.print((row * 3 + col + 1) + " ");
    }
    System.out.println(); // 每行结束换行
}

方法二:单变量递增打印

用一个变量从1开始递增,每打印3个数字就换行,代码更简洁:

int num = 1;
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        System.out.print(num++ + " ");
    }
    System.out.println();
}

方法三:直接打印字符串(极简版)

如果不需要循环逻辑,直接按格式打印字符串最省事:

System.out.println("1 2 3");
System.out.println("4 5 6");
System.out.println("7 8 9");

这些方法都不需要创建和初始化数组,直接生成或输出目标矩阵内容。

内容的提问来源于stack exchange,提问作者Aziz Bokhari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 12:20:33