尝试使用 for 循环打印 2D 数组中的所有值时出现异常。也需要帮助理解嵌套的 for 循环

Exception when trying to print all values in a 2D array using a for loop. Need help understanding the Nested for loop too

提问人:jet 提问时间:3/22/2023 更新时间:3/22/2023 访问量:38

问:

我目前正在学习开始学习 Java,使用 BroCode for Uni,学习如何使用 For 循环打印 2D 数组中的所有值。代码在线程中出现异常:索引 3 在 Arrays2D.main 处超出了长度 3 的界限。

另外,我不确定嵌套的 for 循环到底在说什么,有人能引导我完成它吗?

{
    //2D Arrays = an array in an array

    String[][] cars = {
            {"Toyota", "Mazda", "Subaru"},
            {"Ferrari", "Mercedes", "Porsche"},
            {"Tesla", "Ford", "Hyundai"}
    };
    //[how many arrays][how many elements in each array]
    
    for(int i = 0; i < cars.length; i++)
    {
        System.out.println();
        for(int j = 0; j < cars[i].length; i++)
        {
            System.out.println(cars[i][j] + ", ");
        }
    }
}

从视频中复制了代码,不知道哪里出了问题?几乎只是期望它打印汽车中的所有值。

Java 数组 for 嵌套 循环

评论

0赞 3/22/2023
“不知道哪里出了问题?” <——你为什么不先告诉我们你是怎么知道出了什么问题。代码不编译吗?当您尝试运行它时,它是否会产生错误?它会给你一个你意想不到的结果吗?
0赞 jet 3/22/2023
@OHGODSPIDERS 描述中已经提到,出现了异常/错误:线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException:索引 3 超出 Arrays2D.main(Arrays2D.java:17) 长度 3 的边界

答:

1赞 Allison Chen 3/22/2023 #1

您应该更改为在内循环中。i++j++

   for (int i = 0; i < cars.length; i++) {
        System.out.println();
        for (int j = 0; j < cars[i].length; j++) {
            System.out.println(cars[i][j] + ", ");
        }
    }

外部循环意味着按行遍历数组,而内部循环按列遍历数组。表示第 I 行 j 列中的汽车。cars[i][j]

评论

0赞 jet 3/22/2023
啊,甚至没有意识到这一点!Tysm!