🟢はじめに
Java Silver SE17の黒本を使って学習を進める中で、前回は「基本文法」「型の違い」「型変換」「varの制限」など、Javaの土台となる部分を整理しました。
今回はその続きとして、条件分岐とループ構文について掘り下げていきます。
この分野は一見シンプルに見えますが、試験では「なぜそうなるのか」「この場合はどれに当てはまるか」といった問題が多く出題されます。
特に試験文の挙動が、「ifの使い方」や「拡張forの使い方」など、初学者が詰まりやすいポイントです。
この記事では、黒本の問題をベースにしながら、試験において理解できるように条件分岐とループ構文を整理していきます。
Qiitaでのアウトプットを通じて、同じように学習している方の参考になれば幸いです。
🧠 条件分岐の基本とその本質
Javaにおける条件分岐は、プログラムの流れを制御するための「判断軸」です。Silver試験でも頻出であり、単なる文法暗記ではなく「なぜそのように動くのか」を理解することが合格への鍵となります。
① if文の基本構文と注意点
if (条件式) {
// 条件がtrueのときに実行される処理
}
-
条件式はboolean型である必要がある
例えばif (x = 5)のように代入演算子を使ってしまうと、コンパイルエラーになります。==と=の違いは初学者が混乱しやすいポイントです。 -
複数条件の扱い
&&(AND)や||(OR)を使った複合条件では、短絡評価(short-circuit evaluation)が働くことに注意。
if (x > 0 && check(x)) {
...
}
この場合、x > 0 が false なら check(x) は評価されません。
else if / else の構造と分岐の流れ
if (条件1) {
// 条件1がtrue
} else if (条件2) {
// 条件1がfalseかつ条件2がtrue
} else {
// すべての条件がfalse
}
- 上から順に評価されるため、条件の順序がロジックに影響します
- elseは省略可能ですが、意図しない動作を防ぐために明示的に書く方が安全です
💡 よくあるミスと試験対策ポイント
-
if (条件);のようにセミコロンを誤って書いてしまうと、条件に関係なく次の処理が実行されてしまいます - ブロック
{}を省略すると、意図しない動作になることがあるため、Silver試験では明示的なブロック記述が推奨されます
② 条件分岐:switch文で複数条件を整理する
if 文は柔軟な条件分岐に向いていますが、特定の値に応じて処理を分けたい場合には、switch 文を使うことでコードの見通しがぐっと良くなります。
ここでは、switch 文の基本構文と使いどころを、納得感を持って理解できるように整理します。
🔸 switch文の基本構文
switch (式) {
case 値1:
// 式が値1と一致したときの処理
break;
case 値2:
// 式が値2と一致したときの処理
break;
default:
// どのcaseにも一致しなかったときの処理
}
- 式 には
intやStringなど、比較可能な値を指定します -
breakを書かないと、次のcaseに処理が「落ちる」ので注意が必要です(これを「フォールスルー」と呼びます)
🔸 例:曜日に応じたメッセージ表示
String day = "MONDAY";
switch (day) {
case "MONDAY":
System.out.println("週の始まりです。気合い入れていきましょう!");
break;
case "FRIDAY":
System.out.println("もうすぐ週末ですね。あとひと踏ん張り!");
break;
default:
System.out.println("今日も一日頑張りましょう!");
}
このように、switch 文を使うことで、複数の条件をすっきりと整理できます。特に if-else が連続するような場面では、可読性の向上に役立ちます。
🔸 if文とswitch文の使い分け
- 条件が「true/false」や範囲で分岐する場合 →
if文が適している - 条件が「特定の値」によって分岐する場合 →
switch文が見やすく整理しやすい
Java Silver SE17の試験でも、switch 文の構文やフォールスルーの挙動は頻出ポイントです。次は、複数の case をまとめるテクニックや、switch 文の落とし穴について掘り下げていきます。