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

Java中Jagged Array与嵌套for循环运行不退出问题排查

问题原因
  • 数组声明错误:你当前写的int[][] num2d = new int[4][3];是规则二维数组,含义是共4行、每行固定3个元素,总共有12个存储位,你的嵌套循环会遍历所有12个位置,要求你输入12个整数才会终止。你只输入了7个,程序会一直等待剩余输入,看起来就像卡在了循环里。
  • 交错数组声明逻辑错误:你需要的是2行、第一行4列、第二行3列的交错数组,声明方式完全不同,需要先指定行数,再单独给每一行指定长度。
  • 取消break后的问题:break写在内层循环中,每次内层循环执行1次就直接跳出,所以外层循环运行4次、仅读取4个输入就会终止,无法读取全部7个数字。
修复方案

不用加break,只要把数组声明改成正确的交错数组格式即可,完整可运行代码如下:

import java.util.Scanner;

public class TestCode {
    public static void main(String[] args) {
        //创建Scanner对象
        Scanner userInput = new Scanner(System.in);
        //声明交错数组:共2行
        int[][] num2d = new int[2][];
        //分别初始化每行的长度:第一行4列,第二行3列
        num2d[0] = new int[4];
        num2d[1] = new int[3];
        int i;
        int j;
        System.out.print("Enter seven numbers: ");

        //遍历数组读取输入
        for (i = 0; i < num2d.length; i++) {
            for (j = 0; j < num2d[i].length; j++) {
                num2d[i][j] = userInput.nextInt();
                System.out.println(num2d[i][j]);
            }
        }
        userInput.close();
    }
}

修改后程序总计只需要读取7个输入,输入完成后自动终止循环,正常输出BUILD SUCCESSFUL提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:51:01