2017-10-10 82 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

非常感謝。這固定了一切。它試圖訪問超過數組長度的數據嗎?那是爲什麼它拋出異常? –