以下は、
《break文:エントリ〜中級向け 練習問題セット(解答+ステップ解説付き)》
です。
プログラミング初心者が「読む → 考える → 動かす」で理解を深められる構成にしています。
各問題には
👉「学習ポイント」
👉「ヒント(考える方向)」
👉「模範解答+ステップ解説」
を付けています。
【Lv1】単純な break の動作確認
問題1:
1〜10 まで数を表示し、5 になったらループを抜けて終了するプログラムを書きましょう。
学習ポイント:break は「ループを途中で終わらせる」。
ヒント:for (int i = 1; i <= 10; i++) の中で条件をチェック。
模範解答:
for (int i = 1; i <= 10; i++) {
System.out.println(i);
if (i == 5) {
break;
}
}
System.out.println("ループ終了");
Javaステップ解説:
- 1~10を順に表示
- 5のとき
breakでfor文終了 - 結果:1,2,3,4,5 のみ表示
【Lv1】while ループでの break
問題2:
1からカウントアップし、7 になったらループを抜けるプログラムを書こう。
ヒント:while (true) と break を組み合わせる。
模範解答:
int i = 1;
while (true) {
System.out.println(i);
if (i == 7) {
break;
}
i++;
}
System.out.println("終了");
Java【Lv2】ユーザー入力で break
問題3:
ユーザーが「exit」と入力するまで文字列を受け取り続けるプログラムを作ろう。
学習ポイント:
入力ループの終了条件に break を使う。
模範解答:
Scanner sc = new Scanner(System.in);
while (true) {
System.out.print("入力してください(exitで終了): ");
String input = sc.nextLine();
if (input.equals("exit")) {
break;
}
System.out.println("入力内容: " + input);
}
System.out.println("終了します。");
sc.close();
Java【Lv2】合計が一定値を超えたら終了
問題4:
1〜100 の整数を足し続け、合計が 50 を超えた時点でループを抜けて終了。
模範解答:
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
if (sum > 50) {
break;
}
}
System.out.println("合計が50を超えました: " + sum);
Javaステップ:
1+2+3+… で sum が 51 になった時点で break → 6回目で終了。
【Lv2】リスト検索(見つけたら終了)
問題5:
配列 {"apple", "banana", "grape", "melon"} から "grape" を探して、見つけたら「見つけた!」と表示してループを抜けよう。
模範解答:
String[] fruits = {"apple", "banana", "grape", "melon"};
for (String f : fruits) {
if (f.equals("grape")) {
System.out.println("見つけた!");
break;
}
}
Java【Lv3】見つからなかった場合の処理
問題6:
上の問題を改造し、見つからなかった場合には「見つかりませんでした」と表示するようにしよう。
模範解答:
String[] fruits = {"apple", "banana", "melon"};
boolean found = false;
for (String f : fruits) {
if (f.equals("grape")) {
System.out.println("見つけた!");
found = true;
break;
}
}
if (!found) {
System.out.println("見つかりませんでした");
}
Java【Lv3】二重ループ+ラベルなし break
問題7:
2次元配列 int[][] nums = {{1,2,3},{4,5,6},{7,8,9}}; の中で、値が 5 のときに「発見」と出力して内側ループを抜けよう。
模範解答:
int[][] nums = {{1,2,3},{4,5,6},{7,8,9}};
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums[i].length; j++) {
if (nums[i][j] == 5) {
System.out.println("発見: " + i + "," + j);
break; // 内側ループだけ抜ける
}
}
}
Java【Lv4】ラベル付き break(外側も抜ける)
問題8:
上と同じ配列で、5 を見つけたら両方のループを抜けるように変更しよう。
模範解答:
int[][] nums = {{1,2,3},{4,5,6},{7,8,9}};
Outer:
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums[i].length; j++) {
if (nums[i][j] == 5) {
System.out.println("発見: " + i + "," + j);
break Outer;
}
}
}
System.out.println("探索終了");
Java【Lv4】不正データ検出で中断
問題9:
リスト List<Integer> data = List.of(10, 20, -1, 30);
この中に 負の数があればエラーメッセージを出して処理を中断するプログラムを書こう。
模範解答:
List<Integer> data = List.of(10, 20, -1, 30);
for (int value : data) {
if (value < 0) {
System.err.println("不正データ: " + value);
break;
}
System.out.println("処理: " + value);
}
System.out.println("終了");
Java【Lv5】リトライ処理(成功したら抜ける)
問題10:
疑似API呼び出しメソッド boolean tryConnect() があり、最大3回試行して成功したら抜ける。
失敗したら「失敗x回目」と表示。3回すべて失敗したら「接続できませんでした」。
模範解答:
final int MAX_RETRY = 3;
boolean success = false;
for (int i = 1; i <= MAX_RETRY; i++) {
if (tryConnect()) {
System.out.println("接続成功!");
success = true;
break;
} else {
System.out.println("失敗 " + i + "回目");
}
}
if (!success) {
System.out.println("接続できませんでした。");
}
Javaまとめ:break練習のポイント
| レベル | 主な目的 | 習得スキル |
|---|---|---|
| Lv1 | 単純な break 動作 | ループ制御の基本 |
| Lv2 | 条件終了/入力制御 | 実務の構造理解 |
| Lv3 | 検索+フラグ | 状態管理 |
| Lv4 | ネスト・ラベル | 外側ループ制御 |
| Lv5 | リトライ処理 | 例外的終了と安全設計 |
