2017-10-10 83 views
-4

所以我想创建一个函数来生成随机坐标并将它们存储到数组中。我创建了一个方法,创建并返回一个数组,其中存储了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

数组索引从0开始。newCoordinate的大小为2,您无法通过newCoordinate [2]获取元素。 正确的代码是, System.out.println(“一个坐标是(”+ newCoordinate [0] +“,”+ newCoordinate [1] +“)”);

+0

非常感谢。这固定了一切。它试图访问超过数组长度的数据吗?那是为什么它抛出异常? –