从方法返回数组到主要方法。在主要方法中抛出异常
问题描述:
所以我想创建一个函数来生成随机坐标并将它们存储到数组中。我创建了一个方法,创建并返回一个数组,其中存储了2个随机数。但是,当我运行我的程序时,它会在主方法中抛出异常。我只是想将数组存储在主要方法中,以便稍后可以在算法中使用它。从方法返回数组到主要方法。在主要方法中抛出异常
public static void main (String[] args) {
//This initializes each coordinate used
int[] firstCoordinate = randomCoordinates(); //This is line four where
int[] secondCoordinate = randomCoordinates(); // the exception is thrown
//end of main method
}
public static int[] randomCoordinates() {
int[] newCoordinate = new int[2];
for (int i = 0; i < newCoordinate.length; i++) {
newCoordinate[i] = (int) (Math.random() * 100 + 1);
}
System.out.println("One coordinate is (" + newCoordinate[1] + ", " + newCoordinate[2] + ")"); //Exception also thrown here.
return newCoordinate;
}
的异常状态: 异常在线程 “主” java.lang.ArrayIndexOutOfBoundsException:2 在BetterDIAZR18.randomCoordinates(BetterDIAZR18.java:21) 在BetterDIAZR18.main(BetterDIAZR18.java:4)
答
数组索引从0开始。newCoordinate的大小为2,您无法通过newCoordinate [2]获取元素。 正确的代码是, System.out.println(“一个坐标是(”+ newCoordinate [0] +“,”+ newCoordinate [1] +“)”);
非常感谢。这固定了一切。它试图访问超过数组长度的数据吗?那是为什么它抛出异常? –