-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

ここでは、サイズ 10 の配列を宣言し、num を 11 で初期化しています。

String array[] = new String[10];

したがって、配列のインデックスは0から9まで、つまり合計10になります...

forループは0から10、つまり合計11まで回転します...そして、arrayindexoutofboundが発生します

num=10 の値にするか、配列サイズを 11 にします。

于 2013-03-07T21:38:27.357 に答える
0

Num は 10 に設定する必要があります。11 回ループしています。サイズ n の配列の場合、インデックスは 0 から n-1 になります。

于 2013-03-07T21:38:02.887 に答える
0

Java で配列を操作するときは、配列のインデックスが 0 から始まることを覚えておく必要があります。

したがって、サイズ 10 の配列を宣言すると、0 または 0 ~ 9 で始まる 10 要素の配列が得られます。配列の 10 番目は、実際にはインデックス 9 にあります。

あなたが持っている場所num = 11はおそらくあるはずですnum = array.length

于 2013-03-07T21:37:44.530 に答える