Quantcast
Channel: 配列タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 841

[Java:forループを使った配列]forループが終わった時に、変数に配列の値が適用される。

$
0
0
forループによるスコア集計のコードサンプル public class Main { public static void main(String[] args) { int[] scores = {40, 50, 70, 80, 30}; int sum = 0; for (int i = 0; i < scores.length; i++) { sum += scores[i]; } int avg = sum / scores.length; System.out.println("合計" + sum); System.out.println("平均" + avg); } } 表示結果は 合計270 平均54 になります。 変数sumに配列の値が入るタイミング forを使用した場合、変数sumに配列scoresの値が適応されるタイミングはforループが終了したときです。 なので、平均点の計算は、forループが終了した後に記述しなければ、エラーにはなりませんが誤った結果表示されてしまいます。 誤りのコード 平均計算の式をforループが終わる前(変数sumに配列scoresの値が適応される前)に書いているので、結果が 合計270 平均0 になってしまいます。 public class Zyouken { public static void main(String[] args) { int[] scores = {40, 50, 70, 80, 30}; int sum = 0; //ここで、forループが終了する前に平均点計算をしてしまっている。 int avg = sum / scores.length; for (int i = 0; i < scores.length; i++) { sum += scores[i]; } System.out.println(sum); System.out.println(avg); } } [追記]別解 拡張for文を適用した場合 public class Main { public static void main(String[] args) { int[] scores = {40, 50, 70, 80, 30}; int sum = 0; for(int value:scores) { sum += value; } int avg = sum / scores.length; System.out.println(sum); System.out.println(avg); } }

Viewing all articles
Browse latest Browse all 841

Trending Articles