質問: score[i]; } } System.out.println(max); System.out.println(min); } } 表示をすると、 74 74 74 74 と表示されます。 最高得点と最低得点をscoreにしているのが問題なのでしょうか? わかりません。 教えてください。
回答: ループ開始当時、max = 74、min = 74になっていますが、 ``` if ((score [i] > max ) && (score [i] < min)) { ``` このifブロックに入る条件はわかっていますか? i=1の場合、score[1]=70ですね。 ``` if ( 70 > 74 && 70 < 74 ) { ``` 判定式の変数の中身を実数で表現するとこうなるわけですが。 「74より大きく、同時に74より小さい数値」なんて存在しないですよね? 最大値maxを求めるなら「現在のmaxよりも大きな値」が新しいmaxとして設定されるべきで、最小値minを求めるなら「現在のminよりも小さい値」が新しいminとして設定されるべきです。 つまり、 ``` for (int i = 0; i < score.length; i++); // 最大値maxを求める処理を記述 // 最小値minを求める処理を記述 } ``` のように判定式を二つ用意しなければならないわけですね。