我可能已经看到了,我还没有掌握数组。我正在尝试创建一个存储用户输入的10个字符串,但我怀疑我是否已经采用了正确的方法。目前我收到错误'java.lang.ArrayIndexOutOfBoundsException:10在InputLoop.main(InputLoop.java:22)'任何帮助将不胜感激!
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 :(得分:0)
当您在Java中对数组执行任何操作时,您必须记住数组索引从0开始。
因此,当您声明一个大小为10的数组时,您会得到一个从0或0-9开始的10元素数组。数组的第10个实际上是索引9。
所以你num = 11
的{{1}}应该是num = array.length
答案 1 :(得分:0)
Num需要设置为10.你循环11次。对于大小为n的数组,索引从0到n-1。
答案 2 :(得分:0)
这里你要声明大小为10的数组并用11初始化num
String array[] = new String[10];
所以数组的索引从0到9,即总共10 ...
并且你的for循环将从0旋转到10,即总共11 ...并且它将导致arrayindexoutofbound
使num = 10的值或使你的数组大小为11 ..