1. ホーム
  2. java

[解決済み】配列インデックス Out Of Bounds 例外 [重複]。

2022-02-20 23:07:14

質問

しかし、私は人々が答えていることをあまり理解しておらず、私が理解していることは問題を解決していないようです。基本的には、タイトルにあるように、配列のインデックスが境界外であるという例外が発生するのですが、その理由がわかりません。どんな助けでも非常に感謝されます。

コード

import javax.swing.*;

public class Array {
    public static void main(String[] args) {
        double height[] = new double[10];
        String heightAsString;
        int i, over18 = 0, under16 = 0;

        for(i = 1; i <= height.length; i++){
            heightAsString = JOptionPane.showInputDialog("Please Enter The Height Of Person " + i);
            height[i] = Double.parseDouble(heightAsString);

            if(height[i] > 1.8){
                over18 += 1;
            }

            if(height[i] < 1.6){
                under16 += 1;
            }
        }

        JOptionPane.showMessageDialog(null,"The Total Number Of People Over 1.8m Is: " + over18 +
        "\nThe Total Number Of People Under 1.6m Is: " + under16);
    }
}

解決方法は?

for(i = 1; i <= height.length; i++){
        heightAsString = JOptionPane.showInputDialog("Please Enter The Height Of Person " + i);
        height[i-1] = Double.parseDouble(heightAsString);

        if(height[i-1] > 1.8){
            over18 += 1;
        }

        if(height[i-1] < 1.6){
            under16 += 1;
        }
    }

配列のインデックスが0から始まるので、height[i-1]を使用します。