• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Javaの配列に関するエラーに関して)

Javaの配列に関するエラーについて

このQ&Aのポイント
  • Javaの配列でArrayIndexOutOfBoundsException(配列の範囲外参照)のエラーが発生しています。
  • エラーの原因は、配列の大きさが足りないことによるものです。
  • フィールドで宣言している配列の大きさは十分なはずなのに、エラーが出てしまいます。どのように修正すればエラーがなくなるのか解決策を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • maiko0318
  • ベストアンサー率21% (1483/6970)
回答No.1

K2は本当に(絶対に)1から31の間ですか? そのように設計していても実はアクセスしているかもですので、 a[30][k2]=(""+all);の上の行でK2の値を表示してみてください。

mathmathuunt
質問者

お礼

解決できました! ありがとうございました!

mathmathuunt
質問者

補足

for文を回す条件としてk2が1~31の範囲と指定しているので、多分そうだと思います。 アドバイスに従ってk2の値をSystem.out.println("k2"+k2);として表示させてみましたが、「k2:0」となってエラーが発生しており、k2が0より大きくなっていない模様です。 試しにa[30][0]=(""+333);とプログラムしてみましたが、以下の様なエラーが出てきます。 エラー Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 30 エラー箇所 a[30][0]=(""+333); フィールドで配列の大きさを宣言して、他のところで何かの都合で大きさが変わってしまうなんてことはあるのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • maiko0318
  • ベストアンサー率21% (1483/6970)
回答No.2

>java.lang.ArrayIndexOutOfBoundsException: 30 すいません。問題は30の方ですね。 80に見えて30ということはないですよね。 [30][40]とすると、0から29,0から39までなので。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • javaプログラムのエラーについてです

    プログラムは無事コンパイルすることができました。 しかし、アプレットを実行すると以下のようなエラーが発生します。 なぜこのようなエラーが起こるのでしょうか?勉強不足ですいません。 Exception in thread "AWT-EventQueue-1" java.lang.ArrayIndexOutOfBoundsException: 2 at sample1.paint(sample1.java:19) at java.awt.Container.update(Container.java:1988) at sun.awt.RepaintArea.updateComponent(RepaintArea.java:255) at sun.awt.RepaintArea.paint(RepaintArea.java:232) at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:347) at java.awt.Component.dispatchEventImpl(Component.java:4948) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4698) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:694) at java.awt.EventQueue$3.run(EventQueue.java:692) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDo main.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDo main.java:87) at java.awt.EventQueue$4.run(EventQueue.java:708) at java.awt.EventQueue$4.run(EventQueue.java:706) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDo main.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:705) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre ad.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread. java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre ad.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

  • エラーが消えません

    Exception in thread"main"java.lang.ArrayIndexOutOfBoundsException at PortOpener.main(PortOpener.java:106) って何なんでしょう? プログラムのエラーがいつもわけがわかりません。 どこかにそういうのが載っているところを知っている人教えてください.

    • ベストアンサー
    • Java
  • このエラーって?

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at DrawPolygon.main(DrawPolygon.java:7) java初心者です。授業についていけず困ってます。どなたかこのエラーの意味を初心者の私にもわかるよーに教えてください。

    • ベストアンサー
    • Java
  •  Exception in thread "main" java.la

     Exception in thread "main" java.lang.StackOverflowError というエラーが出ます  moji()にtestという変数をいれてやり、mainから、書かそうとしていますが、  Exception in thread "main" java.lang.StackOverflowError というエラーが出ますが、何故かわかりません。  宜しくお願いします。 ************************************************************ public class ArgsTest2 { public static void main(String args[]) { moji(); } public static void moji() { String[] test = {"abcde","fghij"}; main(test); } }

    • ベストアンサー
    • Java
  • Javaのエラーなのですが

    import java.awt.*; import java.awt.event.*; class PrefFrame extends Frame { public PrefFrame(String title) { //フレームのタイトル setTitle(title); //ウィンドウを閉じる時 addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } } public class PrefTest { public static void main(String args[]) { PrefFrame frm = new PrefFrame("都道府県マスター"); frm.setLocation(300, 200); frm.setSize(250, 350); frm.setBackground(Color.LIGHT_GRAY); frm.setVisible(true); } } と入力しました。コンパイルは出来て、CLASSファイルは作成できたのですが、実行できずにエラーException in thread "main" java.lang.NoClassDefFoundError: PrefTest/javaとなってしまいます。実行するためにはどうしたらよいのでしょうか?

  • 配列インデックス範囲外エラー?

    以下のようなプログラムを実行しようとしたところ、 java.lang.ArrayIndexOutOfBoundsException というエラーが出ました。 args[0]が、配列の範囲外のインデックスを指しているため出ているようなのですが、 原因がよく分かりません。  基本的なことで申し訳ありませんが、ご教授いただけるとありがたいです。 public class test0708_6 { public static void main(String args[]) { // TODO Auto-generated method stub Cell leftmost_cell = null; int leng = args[0].length();   ← java.lang.ArrayIndexOutOfBoundsException for(int i=1; i<=leng; i++) { leftmost_cell = new Cell(args[0].charAt(leng-i), leftmost_cell); } ・・・省略・・・ } }

    • ベストアンサー
    • Java
  • javaの配列でエラーが出ます。

    javaの配列でエラーが出ます。 先ほどもjavaの配列で質問させていただいたんですが、 また同じようなところでエラーが出ました。。。 マインスイーパーを作ろうとしているんですが、 周りにある爆弾の数を数えるところでエラーが出ます。 たびたび頼ってばかりで申し訳ありません。 一応自分なりに考えたのを以下に。。 爆弾があるというのはmine[][]==10であらわしています。 //フィールド int[][] mine=new int[9][9]; Random rnd=new Random(); //スレッド public void run(){ //爆弾生成 int yoko,tate; for(int i=0;i<=9;i++){ yoko=(rnd.nextInt()>>>1)%9; tate=(rnd.nextInt()>>>1)%9; if(mine[yoko][tate]!=10)mine[yoko][tate]=10; else i-- } kazugime(); }//本当はこの後に描画のループが続きます。 //数を代入するメソッド public void kazugime(){ int kazu=0; for(int i=0;i<=8;i++){ for(int j=0;j<=8;j++){ kazu=0; if(mine[i][j]!=10){ //上の段 if(i>=1&&j>=1){if(mine[i-1][j-1]==10)kazu++;} if(i>=1){if(mine[i-1][j]==10)kazu++;} if(i>=1&&j<=7){if(mine[i-1][j+1]==10)kazu++;} //真ん中の段 if(j>=1){if(mine[i][j-1]==10)kazu++;} if(j<=7){if(mine[i][j+1]==10)kazu++;} //下の段 if(i<=7&&j>=1){if(mine[i+1][j+1]==10)kazu++;} if(i<=7){if(mine[i+1][j]==10)kazu++;} if(i<=7&&j<=7){if(mine[i+1][j+1]==10)kazu++;} mine[i][j]=kazu; } } } エラーは Uncaught exception java/lang/ArrayIndexOutOfBoundsException です。 足らない部分があればご指摘お願いします。 どうかよろしくお願いします。

    • ベストアンサー
    • Java
  • 配列とwhileを使った2重ループを使って書きたい

    今JAVAの勉強をしているのですが、「以下のような画面を表示するコードをint型2次元配列とwhileを使った2重ループを使って書いてください。」 ======================================= a[0][0]:1 a[0][1]:2 a[1][0]:3 a[1][1]:4 ======================================= の問題をやっているのですが実行してみると a[0][0]:1 a[1][1]:4 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 at exsercise141.java.Exsercise141Java.main(Exsercise141Java.java:32) Java Result: 1 ビルド成功(合計時間: 0秒) と表示されてしまい、a[0][1]:2とa[1][0]:3が表示されません。 コードは以下のとおりです。 public static void main(String[] args) { // TODO code application logic here int i=0; int j=0;//変数を宣言 int B [] [] = new int [2] [2];//2次元配列を宣言 //======================================== B [0] [0] = 1;// B [0] [1] = 2; //========================================== B [1] [0] = 3; B [1] [1] = 4; //========================================== while(i<=3) { while(j<=3) { System.out.println("a["+i+"]["+j+"]:"+B[i][j]); i++; j++; } } } } どのようにすればa[0][1]:2とa[1][0]:3も表示されますか? ご教授願います。 ちなみにNetBeansを使用しております。 よろしくお願いします。

    • ベストアンサー
    • Java
  • java

    コンパイルできても、実行ができません。 次のようなエラーがでます。 このエラーはどのようなエラーなのでしょうか? Exception in thread "main" java.lang.NoClassDefFoundError: test コードはただたんにHello JAVA と表示させるだけです。 class Test{ public static void main(String args[]){ System.out.println("Hello Java\n"); } }

    • ベストアンサー
    • Java
  • java 実行エラーについて

    プログラムを実行すると、 Exception in thread "main"java.lang.NoClassDefFoundError:Sample と出ます。理由がわかる人はぜひ教えてください。 一応プログラムを載せておきます。 < Sample.java > public class Sample{ public static void main(String[] argc){ System.out.println("Hello World!"); } } お願いします。

    • ベストアンサー
    • Java