質問: ### 前提・実現したいこと 配列を使ったjavaのプログラムです。 点数が40、50、56、60、70、89、92という ものについてそれぞれの総和、平均点をfor文を 使って求めるというものなのですが、 下のようなプログラムに対し、エラーが生じます。 自分ではうまくいっていると思うのですが、 問題がわかりません。ご協力よろしくお願いします。 java初心者なので詳しく説明して頂けると幸いです。 ``` public class Average1 { /** * @param args */ public static void main(String[] args) { int[] score={40,50,56,60,70,89,92}; int sum=0; for(int i=0;i<=score.length;i++){ sum=sum+score[i]; } int average=sum/score.length; System.out.println("7人の合計点は"+sum+"点"); System.out.println("7人の平均点は"+average+"点"); ``` ### 発生している問題・エラーメッセージ ``` Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7 at Average1.main(Average1.java:11) ``` エラーメッセージ ### 試したこと 課題に対してアプローチしたことを記載してください ### 補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報
回答: ArrayIndexOutOfBoundsExceptionとは配列の要素の数より大きい(または0より小さい)番号までアクセスしたときに起こります。いまのforは「7以下」が条件であるため、0から始まり7を「含んで」ループしています。配列要素が7個しかないなら、0から「6まで」しかアクセスしてはいけません。