配列の練習問題 10問セット
ここでは、Java の配列を段階的にマスターするための練習問題10問セットを用意しました。
「初級 → 中級 → 応用」とレベルアップしながら、すべて解答+丁寧な解説つきです。
【レベル1:基礎理解】
問題1:配列の基本代入と出力
整数型の配列 int[] nums = new int[3]; を作り、
0番に10、1番に20、2番に30を代入して、すべて表示してください。
✅ 解答
int[] nums = new int[3];
nums[0] = 10;
nums[1] = 20;
nums[2] = 30;
for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
}
Java💬 解説
配列の基本中の基本。インデックスは 0 から始まることを意識!
問題2:配列の初期化
次の配列を宣言・初期化して、nums[1] の値を出力してください。
int[] nums = {5, 10, 15};
Java✅ 解答
System.out.println(nums[1]); // 10
Java💬 解説
中カッコ {} で初期値をまとめて代入できます。
インデックス1は「2番目の要素」なので10が出ます。
【レベル2:ループ活用】
問題3:配列の合計を求める
次の配列 {3, 7, 2, 9, 4} の合計を求めて表示してください。
✅ 解答
int[] nums = {3, 7, 2, 9, 4};
int sum = 0;
for (int i = 0; i < nums.length; i++) {
sum += nums[i];
}
System.out.println("合計 = " + sum);
Java💬 解説
sum += nums[i]; で要素を順に足していきます。
出力は「合計 = 25」。
問題4:配列の平均を求める
次の配列 {80, 90, 100} の平均値(小数点あり)を求めて表示してください。
✅ 解答
int[] scores = {80, 90, 100};
int sum = 0;
for (int s : scores) {
sum += s;
}
double avg = (double) sum / scores.length;
System.out.println("平均 = " + avg);
Java💬 解説
(double) でキャストしないと整数同士の割り算になってしまいます。
結果は 90.0。
問題5:偶数だけを出力
配列 {1, 2, 3, 4, 5, 6} の中から、偶数だけを出力してください。
✅ 解答
int[] nums = {1, 2, 3, 4, 5, 6};
for (int n : nums) {
if (n % 2 == 0) {
System.out.println(n);
}
}
Java💬 解説
条件式 n % 2 == 0 が偶数判定です。出力:2, 4, 6。
【レベル3:比較・条件処理】
問題6:最大値を求める
配列 {12, 45, 7, 23, 56} の中で最大値を求めて表示してください。
✅ 解答
int[] nums = {12, 45, 7, 23, 56};
int max = nums[0];
for (int i = 1; i < nums.length; i++) {
if (nums[i] > max) {
max = nums[i];
}
}
System.out.println("最大値 = " + max);
Java💬 解説
最初の要素を仮の最大値としておき、より大きいものがあれば更新します。
出力:56。
問題7:最小値を求める
配列 {9, 5, 8, 2, 7} の最小値を求めて表示してください。
✅ 解答
int[] nums = {9, 5, 8, 2, 7};
int min = nums[0];
for (int i = 1; i < nums.length; i++) {
if (nums[i] < min) {
min = nums[i];
}
}
System.out.println("最小値 = " + min);
Java💬 解説
最大値の逆パターン。出力:2。
【レベル4:操作・応用】
問題8:要素の並びを逆順に出力
配列 {10, 20, 30, 40, 50} を逆順に出力してください。
✅ 解答
int[] nums = {10, 20, 30, 40, 50};
for (int i = nums.length - 1; i >= 0; i--) {
System.out.println(nums[i]);
}
Java💬 解説
length - 1 から 0 まで逆向きにループします。
問題9:配列内の検索
配列 {5, 10, 15, 20} の中に 15 が含まれているか調べ、
見つかったら「見つかりました」、なければ「見つかりません」を表示。
✅ 解答
int[] nums = {5, 10, 15, 20};
int target = 15;
boolean found = false;
for (int n : nums) {
if (n == target) {
found = true;
break;
}
}
if (found) {
System.out.println("見つかりました");
} else {
System.out.println("見つかりません");
}
Java💬 解説
線形探索(リニアサーチ)の基本。break; で見つけたらループを中断します。
【レベル5:入力 × 計算 × 配列応用】
問題10:ユーザー入力で平均点を求める
ユーザーが人数を入力し、人数分の点数を配列に入れて平均を表示するプログラムを作ってください。
✅ 解答
import java.util.Scanner;
public class AverageApp {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("人数を入力してください: ");
int n = sc.nextInt();
int[] scores = new int[n];
for (int i = 0; i < n; i++) {
System.out.print((i + 1) + "人目の点数: ");
scores[i] = sc.nextInt();
}
int sum = 0;
for (int s : scores) {
sum += s;
}
double avg = (double) sum / n;
System.out.println("平均点: " + avg);
sc.close();
}
}
Java💬 解説
実務でもよく使う「入力 → 配列格納 → 集計」パターンです。
人数を配列長に使うのがポイント。
学びのまとめ
| レベル | 重点ポイント |
|---|---|
| 基礎 | インデックス操作・for文 |
| 中級 | 合計・平均・条件処理 |
| 応用 | 検索・逆順・入力処理 |
次の学習ステップ
この10問をマスターしたら、以下の方向に発展できます。
| 次のテーマ | 内容 |
|---|---|
| ✅ 2次元配列 | 行列(表)データを扱う(九九表など) |
| ✅ ArrayList | 配列の「可変長版」(要素を自由に追加・削除) |
| ✅ Stream API | 集計処理(平均・最大・最小)を1行で記述 |
| ✅ 実務演習 | 「成績管理」「買い物カゴ」など配列+クラス構成 |
