程序编译但出现以下错误:
两个
一个
三个
线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:3
在testingN.printArray(testingN.java:19)
在testingN.main(testingN.java:10)
我真的是Java(和编程)的新手,我坚持这个。
public class testingN
{
public static void main(String[] args)
{
String[] names = new String[3];
names[0] = "Two";
names[1] = "One";
names[2] = "Three";
printArray(names);
}
public static String printArray(String[] data)
{
int i;
for (i = 0; i < data.length; i++)
{
System.out.println(data[i]);
}
return data[i];
}
}
答案 0 :(得分:2)
这是因为for
循环的工作方式。
for (*initialization*; *some boolean condition*; *action to perform each loop*) {
//...
}
for循环的工作原理如下:
i = 0
i++
。i < data.length
。由于步骤3在检查条件之前发生,因此i
值将比数组大小-1大1。也就是说,它的索引恰好比数组的最后一个索引大一个。所以return data[i];
会给你一个越界异常。
答案 1 :(得分:0)
public class testingN
{
public static void main(String[] args)
{
String[] names = new String[3];
names[0] = "Two";
names[1] = "One";
names[2] = "Three";
printArray(names);
}
public static void printArray(String[] data)
{
for (int i = 0; i < data.length; i++)
{
System.out.println(data[i]);
}
}
}