我目前正在学习开始学习Java,使用BroCode for Uni,学习如何使用For循环打印二维数组中的所有值。该代码在线程中出现异常:Index 3 is out of bounds for length 3 at Arrays2D.main.
我也不确定嵌套的 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] + ", ");
}
}
}
从视频中复制代码,不知道哪里错了?几乎只是期望它能在汽车上打印所有值。
在内部 for 循环中,您正在递增
i
变量而不是 j
,这导致 IndexOutOfBoundsException
因为 i
变得比它应该的大。
内部 for 循环应该使用变量
i-th
遍历 cars[i]
数组(即 j
)中的每个元素。因此,例如,当 i
为 0
时,内部 for 循环应按顺序遍历第一个子数组的元素“Toyota”、“Mazda”和“Subaru”。
尝试以下操作:
{
//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; j++)
{
System.out.println(cars[i][j] + ", ");
}
}
}