- ベストアンサー
double型の配列について。
double型の配列のやり方が良くわかりません。 H[][]にそれぞれの値を入れていきたいのですが・・・ コンパイルは通るのですが、結果を表示させようとすると Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 100 at chikyubefore.main(chikyubefore.java:50) とでできてしまいます。 なぜだか全然わかりません。 わかる方いたら教えていただきたいです。 よろしくお願いいたします。 for(fai=0;fai<=2*devide;fai=fai+1){ for(shita=0;shita<=devide;shita=shita+1){ Tx=Math.sin(shita*pai/devide)*Math.cos(fai*2*pai/2*devide); Ty=Math.sin(shita*pai/devide)*Math.sin(fai*2*pai/2*devide); Tz=Math.cos(shita*pai/devide); どうもここがおかしいみたいです→H[shita][fai]=delta*(Nx2*Tx+Ny2*Ty+Nz2*Tz)+H[shita][fai]; } }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
java.lang.ArrayIndexOutOfBoundsException: 100 at chikyubefore.main(chikyubefore.java:50) 「50行目で存在しない要素100にアクセスしようとした」と書いているね。 Hを確保している行を教えてもらえるかな。
その他の回答 (1)
- ngsvx
- ベストアンサー率49% (157/315)
JAVAの配列は、 int[] a = new int[10]; と宣言した場合、使えるのは a[0]~a[9]までですよ。 そこを間違えているのでは?
補足
返信遅くなってすいません。 Hを確保している行は、 double[][] H=new double[100][200]; です。 101×201の配列を用意したかったので、 今から[][]の中身を変えて、もう一度コンパイルしてみます。