「if文って簡単そうに見えるけど、書いてみるとエラーが出たり、思った通りに動かなかったりして難しい…」そんな経験はありませんか?
私もJavaを学びはじめた頃、「elseの位置が変」「ネストが深すぎてわけがわからない」など、多くの壁にぶつかりました。
この記事では、if文の基礎から応用までを、小学5年生でも理解できるように、シンプルな言葉とコード例を使ってわかりやすく解説します。
この記事を読んだ読者からは「今までで一番スッキリ理解できた」「ようやくエラーの意味がわかった!」という声を多数いただいています。
「if (score > 80)」の意味や、「else if」を使った場合の流れも、例と一緒に見ていけば自然にわかるようになります。
さあ、if文マスターへの一歩を踏み出しましょう!
if文の基本的な書き方がわからない
if文は「ある条件が正しければ、特定の処理を実行する」ための構文です。
プログラムには「条件によって動きを変える」場面がたくさんあります。たとえば「点数が80点以上なら“合格”と表示する」といった条件分岐がそれです。
Javaでのif文の基本形はこちらです。
if (条件) {
// 条件がtrueのとき実行される処理
}
例えば
int score = 85;
if (score >= 80) {
System.out.println("合格です!");
}
このコードでは、score
が80以上なら「合格です!」と表示されます。
【注意点】
- 条件には
true
かfalse
になる式を書く必要があります。 {}
(中カッコ)は、処理が1行でも基本的に付けるのが安全です。- セミコロン
;
をifの直後に書いてしまうと、処理が実行されないというバグにつながります。
❌ ダメな例:
if (score >= 80); {
System.out.println("合格"); // ← これは常に実行されてしまう!
}
if文は「条件に応じて動きを変える」最初の一歩。ルールさえ守れば、とても簡単に使いこなせます!
複数条件の書き方やAND・ORの使い方に戸惑う
Javaでは&&
(AND)、||
(OR)、!
(NOT)を使って、複数の条件を1つのif文で扱うことができます。
現実の判断は「〜かつ〜」や「〜または〜」といった形で複数の条件が合わさっています。それをプログラムでも同じように書けるのが論理演算子です。
・AND(かつ)&&
int age = 20;
boolean isStudent = true;
if (age >= 18 && isStudent) {
System.out.println("大学生以上です");
}
この場合、年齢が18以上かつ学生であれば、条件がtrueになります。
・OR(または)||
boolean hasLicense = false;
boolean isAdult = true;
if (hasLicense || isAdult) {
System.out.println("バイクに乗れます");
}
どちらか一方がtrueであれば、条件はtrueになります。
・NOT(〜ではない)!
boolean isAdmin = false;
if (!isAdmin) {
System.out.println("権限がありません");
}
!
はtrueとfalseを逆にします。
【ポイント】
&&
は両方ともtrueでないとダメ。||
はどちらかがtrueならOK。- 複雑な条件はカッコ
()
を使って分かりやすく整理すると安全です。
論理演算子を使えば、より現実に近い柔軟な条件判定ができるようになります!
else if や else を使った分岐の考え方が理解できない
else if
やelse
は、1つのif
だけでは足りないときに「複数の選択肢」を表すために使います。
現実の判断には「AでもなければB、それでもなければC」というように、条件を順番に分けたいことがあります。ifだけで書くとコードが長くなったり無駄な比較が増えたりするため、else if
やelse
を使うとスッキリします。
たとえばテストの点数によってメッセージを出し分けたいとき:
int score = 72;
if (score >= 90) {
System.out.println("とてもよくできました");
} else if (score >= 70) {
System.out.println("よくできました");
} else if (score >= 50) {
System.out.println("がんばりましょう");
} else {
System.out.println("もう一度チャレンジ!");
}
このように、else if
で条件を追加し、最後のelse
は「上のどれにも当てはまらないとき」の処理になります。
【ポイント】
else if
はいくつでも追加可能else
は1つだけで、必ず一番最後に書く- 上から順番に評価され、最初にtrueになったブロックだけが実行される
【誤解されやすい点】
int score = 95;
if (score >= 70)
System.out.println("70以上");
if (score >= 90)
System.out.println("90以上");
このようにif
を2つにすると、両方実行されるので注意!else if
やelse
を使えば、よりスムーズで効率的な条件分岐が書けます!
入れ子(ネスト)になったif文が読みにくくて混乱する
if文の中にif文を書くと「入れ子(ネスト)」になり、条件が増えるほど読みにくくなります。
複雑な条件判定では、段階的に条件を分けたいことがありますが、そのまま書くとコードが深くなり、どのifがどれに対応しているのかがわからなくなります。
具体例を見てみましょう!
int age = 18;
boolean hasTicket = true;
if (age >= 18) {
if (hasTicket) {
System.out.println("入場できます");
} else {
System.out.println("チケットが必要です");
}
} else {
System.out.println("18歳未満は入場できません");
}
これは、年齢とチケットの両方を判定している例です。
【問題点と改善】
- ネストが深くなると読みにくい
- 処理が増えるとインデントのミスもしやすい
そこで、&&
などの論理演算子を使ってネストを浅くできます:
if (age >= 18 && hasTicket) {
System.out.println("入場できます");
} else if (age >= 18) {
System.out.println("チケットが必要です");
} else {
System.out.println("18歳未満は入場できません");
}
【補足】
return
を早めに使えば、分岐の途中で終了できて読みやすさが向上します。- ネストが3段以上になる場合は、別メソッドに分けるのも有効です。
ネストを減らすことで、読みやすく・ミスの少ないコードが書けるようになります!
if文とswitch文の使い分けがわからない
if
とswitch
はどちらも条件分岐に使えますが、用途や書き方に違いがあり、適材適所で使い分けることが大切です。
複数の値(例えば「月」や「曜日」)に応じて異なる処理をしたいときは、switch
を使った方がコードがスッキリします。一方で、比較や範囲判定などが必要なときはif
が向いています。
具体例を見てみましょう!
int day = 3;
switch (day) {
case 1:
System.out.println("月曜日");
break;
case 2:
System.out.println("火曜日");
break;
case 3:
System.out.println("水曜日");
break;
default:
System.out.println("その他の曜日");
}
これをifで書くと:
if (day == 1) {
System.out.println("月曜日");
} else if (day == 2) {
System.out.println("火曜日");
} else if (day == 3) {
System.out.println("水曜日");
} else {
System.out.println("その他の曜日");
}
【比較ポイント】
- switchの方が見やすくなるケース:値が「同じかどうか」で分けるとき(例:1〜7の曜日)
- ifの方が適しているケース:範囲や複雑な条件があるとき(例:score >= 80 など)
- Java 14以降では
switch
がより強力に(式として使えるなど)
「どちらも使えるけど、状況に応じて選ぶ」ことができれば、より読みやすくて保守しやすいコードになります!
まとめ 〜Javaのif文は“流れ”で理解しよう〜
Javaのif文は「条件によってプログラムの流れを変える」ための超重要なツールです。
条件によって「何をするか」を選べるようになると、プログラムに“意思”や“選択”を持たせられるようになります。初心者にとっては最初のつまずきやすいポイントですが、1つ1つの構造を理解すれば、確実に使いこなせるようになります。
この記事で学んだこと:
if
文の基本構文と書き方&&
,||
,!
を使った複数条件の扱い方else if
やelse
を使った分岐の順序と使い分け- ネスト(入れ子)による混乱を防ぐテクニック
if
とswitch
の違いと使い分けの判断基準
if文を理解することは、プログラミングを「自分の言葉で指示する力」を身につけることに他なりません。この記事で得た知識を、明日からのコードにどんどん活かしていきましょう!