1

私はJavaが初めてで、今日は配列の作業を始めましたが、道に迷っています。配列にいくつかの値を入れようとしていますが、エラーが発生していますjava.lang.ArrayIndexOutOfBoundsException

これが私がこれまでに行ったことです。

      int n=6; 
      int[]A= new int [1];

      for(i=0;i<n;i++){
          A[i]=keyboard.nextInt();
      } 
4

7 に答える 7

3

java.lang.ArrayIndexOutOfBoundsException は、存在しない配列インデックスにアクセスしようとしていることを意味します。

問題は、配列のサイズが 1 であることです。ただし、そのループを 6 回実行しています。n を 1 にするか、配列のサイズを増やすことができます。

于 2014-11-12T20:46:26.977 に答える
1

問題は、配列のサイズが 1 であることです。配列宣言のブラケットの間に配列のサイズを設定します。

for ループは 6 回実行されます。配列のサイズを 6 に変更できます。

int n=6;

  int[]A= new int [6];

for(i=0;i<=n;i++)
   {
      A[i]=keyboard.nextInt();

   } 
于 2013-04-18T03:32:40.637 に答える
0

ここでは、配列のサイズを 1 として宣言していますが、配列を 6 回トラバースしています。

あなたのforループであなたは書くべきです

for (int i=0; i< A.length; i++ ){

  A[i]=keyboard.nextInt();
}

したがって、この場合、ループは 1 回だけトラバースされます。

于 2013-04-18T03:33:23.303 に答える
0

java.lang.ArrayIndexOutOfBoundsException は、存在しない配列インデックスにアクセスしようとしていることを意味します。たとえば、配列があります

        int []array=new int[3];

array[4] にアクセスしようとすると、ArrayIndexOutOfBoundsException が発生します。要するに、配列の OUT OF ITS BOUND にアクセスするたびに、この例外が発生するということです。

:D

于 2013-04-18T03:33:41.747 に答える
0

それはそれが言うことのようなものを意味します。定義した配列の範囲外の要素にアクセスしようとしています。

あなたの配列 new int [1]; 1 つの要素のみを保持します。int [n]; という意味だったと思います。

于 2013-04-18T03:31:35.807 に答える
0

アクセスできないメモリにアクセスしようとしています。配列はサイズ 1 で宣言されており、n = 6 を設定しています。したがって、配列 A をトラバースすると、宣言されていない配列の 5 つの架空の場所にアクセスしようとしています。したがって、配列インデックスが範囲外です。

おそらくあなたが望むのはこれです:

  int n=6;

      int[]A= new int [n];

    for(i=0;i<n;i++)
   {
      A[i]=keyboard.nextInt();

   }
于 2013-04-18T03:32:33.520 に答える