这个错误是什么意思? java.lang.ArrayIndexOutOfBoundsException:-1 ?
java.lang.ArrayIndexOutOfBoundsException: -1
at Game.Game.plantVegetables(Game.java:1160)
at Game.__SHELL11.run(__SHELL11.java:8)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at bluej.runtime.ExecServer$3.run(ExecServer.java:725)
例外情况发生在:
Scanner keyIn = new Scanner (System.in);
for(int leftToPlant=10; leftToPlant>0; leftToPlant--)
if (field[row1][column1].equals("t") ||
field[row1][column1].equals("c") ||
field[row1][column1].equals("p") ||
field[row1][column1].equals("r"))
答案 0 :(得分:2)
你试图将数组的第-1个元素放在不存在的位置。发布更多代码以获得更准确的答案。
答案 1 :(得分:0)
假设for循环中有一个数组,那么您正在尝试使用无效索引访问数组中的元素。检查你的for循环并确保你的数组包含11个元素。不会访问第一个元素。
JavaScript中的示例代码,包含10个元素的数组
cars=["BMW","Volvo","Saab","Ford","SD","BMW","Volvo","Saab","Ford","SD"];
for (var i=10;i>0;i--)
{
document.write(cars[i]);
}
输出
undefined - Element 10
SD - Element 9
Ford - Element 8
Saab
Volvo
BMW
SD
Ford
Saab - Element 2
Volvo - Element 1
Element 0 won't be access because your loop stops at 1.
<强>小提琴:强> http://jsfiddle.net/VFLLN/