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

Java二维数组生成单位矩阵异常:输出全0而非目标矩阵

问题排查与修复方案

嘿,这问题一眼就能看出来啦!你的代码里有个循环条件的低级错误,直接导致填充单位矩阵的逻辑完全没执行起来~

核心问题分析

你看这段内层循环代码:

for (int j = 0; j < 0; j++)

j的初始值是0,而循环条件是j < 0——这个条件从一开始就不成立,所以这个内层循环一次都不会运行。而Java中int类型的二维数组初始化时,所有元素默认值都是0,最后输出自然是全0矩阵。

修复后的代码

只需要把内层循环的条件改成j < n,让它能遍历每一列就行。另外else num[i][j] = 0;其实可以省略,因为数组默认已经是0了,不过保留也不影响:

import java.util.Scanner;
class Test1 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int[][] num = new int[n][n];
        
        for (int i = 0; i < n; i++)
            // 把j < 0改成j < n,让循环正常执行
            for (int j = 0; j < n; j++)
                if (i == j)
                    num[i][j] = 1;
                // 可选:数组默认值为0,这行可删除
                else
                    num[i][j] = 0;
        
        for (int[] a : num) {
            for (int b : a)
                System.out.print(b + " ");
            System.out.println();
        }
    }
}

验证效果

当输入3时,这段代码会输出:

1 0 0 
0 1 0 
0 0 1 

完全符合你想要的单位矩阵效果~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:42:17