2013-03-07 56 views
-1

我還沒有弄清楚數組的問題,你可能會看到。我試圖創建一個可以存儲用戶輸入的10個字符串的字符串,儘管我懷疑我已經走過了正確的道路。此刻我得到了錯誤'InputLoop.main(InputLoop.java:22)'java.lang.ArrayIndexOutOfBoundsException:10'任何幫助將不勝感激!數組存儲用戶輸入

import java.util.Scanner; 

public class InputLoop 
{ 
public static void main(String[] args) 
{ 
    Scanner scan = new Scanner(System.in); 

    String array[] = new String[10]; 
    int num =11, i =0; 
    System.out.println ("Enter a word"); 
    for (i=0;i<num;i++) 
    { 
     while (scan.hasNextInt()) // while non-integers are present... 
     { 

      scan.next();   //...read and discard input, then prompt again 
      System.out.println ("Bad input. Enter a word"); 

     } 

     array[i] = scan.next(); 

    } 
} 
} 

回答

0

當你在Java數組什麼,你要記住,數組中0索引開始。

所以當你聲明一個大小爲10的數組時,你會得到一個從0或0-9開始的10個元素的數組。你的數組的第10屆實際上是在指數9

所以,你必須num = 11也許應該num = array.length

0

民需要被設置爲10。你循環11次。對於大小爲n的數組,索引從0到n-1。

0

這裏您聲明大小爲10的陣列,並與初始化民11

String array[] = new String[10]; 

所以陣列將擁有從0其索引到9,即共有10個...

和你的循環將從0旋轉到10,即總共11 ...並且它將導致陣列數量增加

或者使num = 10的值或使得數組大小爲11 ..