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

Java二维数组索引打印异常:始终返回0且不递增求助

问题解决:二维数组输入时索引不递增显示的问题

你代码里的核心问题是打印的是数组元素而不是循环的行/列索引:

  • Java中刚创建的int二维数组,所有元素默认值都是0,所以你每次输出num[row][column]时,只会显示0,跟循环的row、column变量没关系。
  • 另外没必要在循环里反复创建Scanner对象,放在循环外一次就行。

修正后的代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int[][] num = new int[2][2];
        int numbering = 0;
        // 把Scanner放在循环外,只创建一次
        Scanner sc = new Scanner(System.in);
        
        for (int row = 0; row < num.length; row++) {
            for (int column = 0; column < num[row].length; column++) {
                // 这里打印循环变量row和column,而不是数组元素
                System.out.println("Enter Row " + row + " & Column " + column + " value");
                num[row][column] = sc.nextInt();
            }
        }
        
        // 遍历输出验证
        for (int i = 0; i < num.length; i++) {
            for (int j = 0; j < num[i].length; j++) {
                System.out.println("The Values at " + ++numbering + " position (Row " + i + ", Column " + j + ") is: " + num[i][j]);
            }
        }
        // 关闭Scanner释放资源
        sc.close();
    }
}

修正点说明

  1. 打印语句改为直接输出循环变量row和column,这样就能随着循环递增显示正确的索引。
  2. 将Scanner sc的创建移到循环外部,避免重复创建对象,最后调用sc.close()释放资源。
  3. 内层循环判断条件改成num[row].length,适配不规则二维数组的遍历场景,比固定用num.length更通用。

正确输出示例

运行后会依次提示:

Enter Row 0 & Column 0 value
Enter Row 0 & Column 1 value
Enter Row 1 & Column 0 value
Enter Row 1 & Column 1 value

输入完成后,会输出类似:

The Values at 1 position (Row 0, Column 0) is: 10
The Values at 2 position (Row 0, Column 1) is: 20
The Values at 3 position (Row 1, Column 0) is: 30
The Values at 4 position (Row 1, Column 1) is: 40

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:01:27