-1

正如您可能看到的那样,我还没有掌握数组的窍门。我正在尝试创建一个将存储用户输入的 10 个字符串的字符串,尽管我怀疑我是否采取了正确的方法。目前我收到错误 'java.lang.ArrayIndexOutOfBoundsException: 10 at 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();

    }
}
}
4

3 回答 3

0

当你在 Java 中对数组做任何事情时,你必须记住数组索引从 0 开始

所以当你声明一个大小为 10 的数组时,你会得到一个从 0 或 0-9 开始的 10 元素数组。数组的第 10 个实际上在索引 9 处。

所以你num = 11应该在哪里num = array.length

于 2013-03-07T21:37:44.530 回答
0

Num 需要设置为 10。你循环了 11 次。对于大小为 n 的数组,索引从 0 到 n-1。

于 2013-03-07T21:38:02.887 回答
0

在这里,您要声明大小为 10 的数组并用 11 初始化 num

String array[] = new String[10];

所以数组的索引从 0 到 9 即总共 10...

并且您的 for 循环将从 0 旋转到 10 即总共 11 ......它会导致 arrayindexoutofbound

要么使值 num=10 要么使您的数组大小为 11 ..

于 2013-03-07T21:38:27.357 回答