実践ミニアプリ:成績の合計・平均を出すプログラム
ここでは、「ユーザーから整数を入力して配列に保存し、合計と平均を計算する」
という、配列の length を実務風に活用するミニアプリを、初心者向けに ステップごとに詳しく解説 します。
アプリの目的
- ユーザーが人数を入力(例:「3人分の点数を入力」)
- 各人の点数を順に入力
- 全員の 合計点 と 平均点 を計算して表示
完成イメージ
人数を入力してください: 3
1人目の点数を入力してください: 80
2人目の点数を入力してください: 70
3人目の点数を入力してください: 90
合計点: 240
平均点: 80.0
コード全体(MainクラスのみでOK)
import java.util.Scanner;
public class ScoreCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 1. 入力人数を取得
System.out.print("人数を入力してください: ");
int n = scanner.nextInt();
// 2. 配列を作成(人数分の箱を用意)
int[] scores = new int[n];
// 3. 点数を入力して配列に格納
for (int i = 0; i < scores.length; i++) {
System.out.print((i + 1) + "人目の点数を入力してください: ");
scores[i] = scanner.nextInt();
}
// 4. 合計を計算
int sum = 0;
for (int i = 0; i < scores.length; i++) {
sum += scores[i];
}
// 5. 平均を計算(整数同士の割り算に注意)
double average = (double) sum / scores.length;
// 6. 結果を出力
System.out.println("\n合計点: " + sum);
System.out.println("平均点: " + average);
scanner.close();
}
}
Javaステップ解説
| ステップ | 説明 | ポイント |
|---|---|---|
| ① | 人数を入力 | Scannerで整数を読み込む (nextInt()) |
| ② | 配列を人数分作る | new int[n] で要素数が人数になる |
| ③ | for文で入力を繰り返す | i < scores.length を使うのがポイント |
| ④ | 合計を求める | sum += scores[i]; |
| ⑤ | 平均を求める | sum / scores.length、整数割り算に注意して (double) にキャスト |
| ⑥ | 結果表示 | 改行 \n で見やすく |
ここが重要!
✅ scores.length の役割
- 「配列の要素数」を取得する唯一の方法
- 人数を後から変えても、自動的にループ回数が変わる
→ ハードコーディングを避け、安全で再利用しやすいコード になる
例:
for (int i = 0; i < scores.length; i++) {
// 人数が変わっても自動対応!
}
Java改良版(クラス設計で実務風)
「Main+Service構造」で整理すると、より実務っぽくなります👇
import java.util.Scanner;
public class ScoreApp {
public static void main(String[] args) {
ScoreService service = new ScoreService();
service.run();
}
}
class ScoreService {
public void run() {
Scanner scanner = new Scanner(System.in);
System.out.print("人数を入力してください: ");
int n = scanner.nextInt();
int[] scores = new int[n];
for (int i = 0; i < scores.length; i++) {
System.out.print((i + 1) + "人目の点数: ");
scores[i] = scanner.nextInt();
}
int sum = calcSum(scores);
double avg = calcAverage(scores);
System.out.println("\n合計点: " + sum);
System.out.println("平均点: " + avg);
scanner.close();
}
// 合計を計算するメソッド
private int calcSum(int[] arr) {
int sum = 0;
for (int value : arr) {
sum += value;
}
return sum;
}
// 平均を計算するメソッド
private double calcAverage(int[] arr) {
if (arr.length == 0) return 0;
return (double) calcSum(arr) / arr.length;
}
}
Java📘ポイント:
lengthを複数メソッドで活用。- 平均計算では「配列が空(length==0)」のときに 0 を返して安全設計。
- 実務コードではこういう「防御的プログラミング」が大事です。
応用ミニ課題
1️⃣ 最高点・最低点を求める機能 を追加してみましょう。
→ for文で配列を走査し、max と min を更新。
2️⃣ 平均点以上の人だけを表示 するプログラムにしてみましょう。
→ 条件 if (scores[i] >= average) を活用。
まとめ
| 覚えておきたいこと | 説明 |
|---|---|
配列.length | 配列の長さ(要素数)を取得できる |
length は変更不可 | 代入して長さを変えることはできない |
for (i < array.length) | 配列の範囲を安全に処理する定番パターン |
| 実務では | 入力・計算・出力をメソッドやクラスに分けて整理する |
