重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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];
}
}

A 回答 (2件)

java.lang.ArrayIndexOutOfBoundsException: 100 at chikyubefore.main(chikyubefore.java:50)


「50行目で存在しない要素100にアクセスしようとした」と書いているね。
Hを確保している行を教えてもらえるかな。

この回答への補足

返信遅くなってすいません。
Hを確保している行は、
double[][] H=new double[100][200];
です。
101×201の配列を用意したかったので、
今から[][]の中身を変えて、もう一度コンパイルしてみます。

補足日時:2004/12/15 09:31
    • good
    • 0

JAVAの配列は、



int[] a = new int[10];

と宣言した場合、使えるのは

a[0]~a[9]までですよ。

そこを間違えているのでは?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!