0
とエラーIは、Appクラスで、ループで助けを得ました。私は取得していますのJava - 2D配列 - メインとインスタンス化クラス - ループ
errrosは以下のとおりです。スレッド "メイン" java.lang.ArrayIndexOutOfBoundsExceptionで
例外:rainfall.Rainfall.compute で0 が参照:降雨で
sum[i] = rain[i][j] + sum[i];
。 RainfallApp.mainはを参照:
r.compute();)
C:\ Users \ユーザー〜\ run.xml:53:Javaが返さ:1 BUILDのFAIをLED(合計時間:5秒)
インスタンス化可能クラス:
import java.util.Arrays;
import javax.swing.JOptionPane;
public class Rainfall {
private int i;
private int j;
private int[][] rain = new int[4][7];
private int[] average = new int[4];
private int[] sum = new int[4];
public Rainfall(){
i = 0;
j = 0;
rain = new int[][]{};
average = new int[]{};
sum = new int[]{};
}
public Rainfall(int i, int j) {
this.i = i;
this.j = j;
}
public int getJ() {
return j;
}
public void setJ(int j) {
this.j = j;
}
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public int[][] getRain() {
return rain;
}
public void setRain(int[][] rain) {
this.rain = rain;
}
public int[] getAverage() {
return average;
}
public void setAverage(int[] average) {
this.average = average;
}
public int[] getSum() {
return sum;
}
public void setSum(int[] sum) {
this.sum = sum;
}
public void compute(){
for (i = 0; i < rain.length; i++) {
for (j = 0; j < rain[0].length; j++) {
rain[i][j] = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter value"));
sum[i] = rain[i][j] + sum[i];
}
average[i] = sum[i]/rain[i].length;
}
}
public String returnAvg(){
return Arrays.toString(average);
}
}
APPファイル:
import javax.swing.JOptionPane;
import java.util.Arrays;
public class RainfallApp {
public static void main(String[] args) {
int[][] rain = new int[4][7];
int[] average = new int[4];
Rainfall r = new Rainfall();
r.setRain(rain);
r.compute();
average = r.getAverage();
JOptionPane.showMessageDialog(null, "The average for each week is: "+Arrays.toString(average));
}