2013-03-07 71 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 ..