2017-05-03 93 views
-7

好吧,我不知道爲什麼,但我仍然在我的 數組上遇到越界異常,儘管我認爲它仍然在上述數組的範圍內。Java Array問題。拋出界外例外

public class Assignment04Arrays 
{ 
    public static void main(String[] args) 
    { 
     Scanner inputArray = new Scanner(System.in); 
     System.out.print("How many numbers do you want to enter? "); 
     int numbers = inputArray.nextInt(); 

     int x = 0; 
     int y = 0; 
     int z = 0; 

     int arrayTotal = numbers; 
     double[] myArray; 
     myArray = new double[arrayTotal]; 

      System.out.println(arrayTotal); 

     while (x<numbers){ 
      Scanner arrayNumbers = new Scanner(System.in); 
      System.out.print("Please enter a number: "); 
      double arraynumber = arrayNumbers.nextDouble(); 

      System.out.println(x); 
      System.out.println(arraynumber); 

      /*fails here when it shouldn't*/ 
      myArray[x] = arraynumber; 
      x++; 
     }  
    } 

} 
+0

它是否失敗的'數字'的任何具體值? –

+1

你的代碼沒有錯誤,你如何運行它來產生這個錯誤? – fujy

+0

我測試了您的代碼,並且在使用5個數字並輸入1,2,3,4,5時不會崩潰 – DevB2F

回答

0

所以,通過命令行測試我的機器上的這個代碼,這工作得很好。這段代碼不應該有任何問題,但不知道你的環境是什麼以及你的測試輸入是什麼。

幾件事情嘗試:

  • 獲得while循環擺脫額外的掃描儀。你在每次迭代時都創建一個掃描器,而不是關閉它們中的任何一個,這可能會導致一些奇怪的現象,但是你正在運行它。
  • 嘗試通過命令行運行(javac Assignment04Arrays.java來編譯它,然後java Assignment04Arrays來運行它)。如果這可行,那麼可能是在編譯它。

如果這樣不能解決問題,那麼您的測試輸入具體是什麼導致了這個錯誤?