Javaのif文ってどう書くんだろう。調べてみたけど、なんか難しそうで…
if文は条件分岐の基本です。構文さえ覚えれば、あとは組み合わせるだけですよ。
Javaを学び始めて最初につまずくのが、java if 文の書き方です。
「条件によって処理を変えたい」という場面は、現場のコードでも毎日のように出てきます。基本構文から、現場で使える実践的なテクニックまで、一緒に整理していきましょう。

本記事の専門性
6年目エンジニアのZettoです。元々は実務でJavaをメインとした開発を担当していました。また、Java Goldの資格を保有しています。
if文を含む条件分岐の設計経験から、初心者向けに実践的なテクニックをお伝えしますね。
if文を理解しないままコードを書き続けると、バグの原因を特定できなかったり、読みにくいコードが増えていったりします。結果として、チームのコードレビューで毎回指摘を受けてしまう…そんな状況になりかねないです。
この記事を読むことで、次のことが身につきます。
- if文の基本構文と、else・else ifの使い方が理解できる
- 論理演算子を使った複合条件の書き方がわかる
- 現場でハマりがちなnullチェックや文字列比較の正しい方法がわかる
- コードを読みやすく保つガード節・boolean変数の活用法がわかる
- 演習問題で実際に手を動かして確認できる
ぜひ参考にしてみてください。
Javaのif文とは|条件分岐の基本を理解しよう

Javaでif文を使いこなすために、まずは基本の仕組みを押さえておきましょう。
この章では、次の内容を順に解説します。
- if文とは何か・いつ使うのか
- if文の基本構文とサンプルコード
- else文・else if文で複数の条件に対応する
- 比較演算子の種類と使い方
それぞれ解説していきます。
if文とは何か・いつ使うのか
if文は、「ある条件が成り立つときだけ処理を実行する」ための仕組みです。
日常の言葉に置き換えると、「もし〜なら、〇〇する」という考え方ですね。
たとえば「ログインしているユーザーにだけ画面を表示する」「スコアが80点以上なら合格と表示する」といった処理が、if文で実現できます。
プログラムの中で「場合分け」が必要になるときは、ほぼすべてif文の出番です。
if文の基本構文とサンプルコード
if文の基本的な書き方は、以下の通りです。
if (条件式) {
// 条件が true のときに実行される処理
}実際のコードで確認してみましょう。
int score = 85;
if (score >= 80) {
System.out.println("合格です");
}この例では、scoreが80以上のときだけ「合格です」と表示されます。
条件がfalseの場合、{}の中の処理はスキップされます。
else文・else if文で複数の条件に対応する
条件に合わない場合の処理を書くときは`else`を使います。
さらに複数の条件に分岐したいときは`else if`を使いましょう。
int score = 65;
if (score >= 80) {
System.out.println("合格です");
} else if (score >= 60) {
System.out.println("ギリギリ合格です");
} else {
System.out.println("不合格です");
}else ifはいくつでも並べられますが、上から順に条件を評価して、最初にtrueになったブロックだけが実行されます。
条件の順番を間違えると意図しない結果になるので、注意が必要です。
比較演算子の種類と使い方(==・!=・>・<など)
if文の条件式で使う比較演算子をまとめておきます。
基本の演算子を押さえておくと、条件式をスムーズに書けるようになります。
- ==(等しい) : a == b はaとbが等しいときtrue
- !=(等しくない) : a != b はaとbが異なるときtrue
- >(より大きい) : a > b はaがbより大きいときtrue
- <(より小さい) : a < b はaがbより小さいときtrue
- >=(以上) : a >= b はaがb以上のときtrue
- <=(以下) : a <= b はaがb以下のときtrue
このあたりはプログラミング全般で共通して使う概念なので、覚えておくと他の言語を学ぶときにも役立ちます。
if文の基本は「条件式が true なら処理を実行する」というシンプルなルールです。
この基本をしっかり押さえた上で、次の章では条件の組み合わせ方を見ていきましょう。
条件を組み合わせる|論理演算子とネストif文の使い方

if文は単独の条件だけでなく、複数の条件を組み合わせることもできます。
この章では、次の内容を解説します。
- AND(&&)・OR(||)・NOT(!)で条件を組み合わせる
- ネスト(入れ子)if文の書き方と注意点
- 三項演算子で条件分岐を1行で書く方法
組み合わせを覚えると、if文でできることが一気に広がりますよ。
AND(&&)・OR(||)・NOT(!)で条件を組み合わせる
複数の条件をまとめて書きたいときは、論理演算子を使います。
3つの演算子の意味と使い方を確認しましょう。
- &&(AND) : 両方の条件が true のときだけ true
- ||(OR) : どちらか一方でも true なら true
- !(NOT) : 条件の true と false を反転させる
int age = 20;
boolean hasMembership = true;
// AND:年齢が18以上かつ会員のとき
if (age >= 18 && hasMembership) {
System.out.println("入場できます");
}
// OR:年齢が60以上または障害者手帳を持っているとき
boolean hasDisabilityCard = false;
if (age >= 60 || hasDisabilityCard) {
System.out.println("割引が適用されます");
}
// NOT:会員でないとき
if (!hasMembership) {
System.out.println("会員登録が必要です");
}ネスト(入れ子)if文の書き方と注意点
if文の中にさらにif文を書くことを「ネスト(入れ子)」と呼びます。
複雑な条件を段階的にチェックしたいときに使います。
int score = 85;
boolean isStudent = true;
if (score >= 60) {
if (isStudent) {
System.out.println("学生合格");
} else {
System.out.println("一般合格");
}
}ただし、ネストが深くなるとコードが読みにくくなるのが難点です。
目安として、ネストは2段階まで。それ以上は後述するガード節でシンプルにできることが多いです。
三項演算子で条件分岐を1行で書く方法
三項演算子を使うと、シンプルな条件分岐を1行でコンパクトに書けます。
書き方は「`条件式 ? trueのとき : falseのとき`」です。
int score = 75;
String result = score >= 60 ? "合格" : "不合格";
System.out.println(result); // 合格ただし、処理が複雑になると読みにくくなるので、あくまで「値の代入」のような単純な場面で使うのがおすすめです。
論理演算子・ネスト・三項演算子、この3つを使いこなせると、if文の表現力がぐっと上がります。
次の章では、現場でよく引っかかるポイントと、それを回避する実践的な書き方を紹介します。
&&とか||とか記号が多くて、最初は混乱しそう…
最初は&&だけ使えるようになれば十分です。使っているうちに自然と覚えられますよ!
現場で差がつくif文の書き方|初心者がハマる落とし穴と実践テクニック

基本構文を覚えたあと、現場で実際につまずくのがこの章のテーマです。
この章では、次の内容を紹介します。
- 文字列比較は`==`ではなく`equals`を使う理由
- NullPointerExceptionを防ぐnullチェックの書き方
- ガード節でネストを解消しコードを読みやすくする
- boolean変数で条件式を読みやすく整理する
- if文とswitch文の使い分け基準
文字列比較は==ではなくequalsを使う理由
Javaで文字列を比較するとき、`==`を使うと正しく動かないことがあります。
文字列の比較には必ず`equals`メソッドを使いましょう。
String input = new String("admin");
// NG:参照先が同じかを比べているので意図通りに動かないことがある
if (input == "admin") {
System.out.println("ログイン成功");
}
// OK:文字列の中身を比較する
if (input.equals("admin")) {
System.out.println("ログイン成功");
}==は「同じオブジェクトか」を比べる演算子です。
文字列の場合、同じ内容でも異なるオブジェクトになる場合があり、==ではfalseになってしまいます。
僕自身も1社目の研修で、この違いを説明できずに先輩に指摘されたことがありました。
NullPointerExceptionを防ぐnullチェックの書き方
`equals`を使うときに気をつけたいのが、変数が`null`の場合です。
nullの変数に対してequalsを呼び出すとNullPointerException(ヌルポインター例外)が発生します。
String input = null;
// NG:nullに対してequalsを呼ぶとNullPointerException
if (input.equals("admin")) {
System.out.println("ログイン成功");
}
// OK:文字列リテラル側からequalsを呼ぶ
if ("admin".equals(input)) {
System.out.println("ログイン成功");
}
// OK:事前にnullチェックをする
if (input != null && input.equals("admin")) {
System.out.println("ログイン成功");
}リテラル(定数)側からequalsを呼ぶ書き方は、現場でよく使われるテクニックです。
どちらの書き方でもよいですが、チームのコーディング規約に合わせて統一するのが大切です。
ガード節でネストを解消しコードを読みやすくする
ネストが深いコードを読みやすくする方法のひとつが「ガード節」です。
条件を満たさない場合を先に`return`で弾いてしまう書き方ですね。
// ネストが深い書き方
public void process(String input) {
if (input != null) {
if (!input.isEmpty()) {
System.out.println("処理:" + input);
}
}
}
// ガード節を使った書き方
public void process(String input) {
if (input == null) return;
if (input.isEmpty()) return;
System.out.println("処理:" + input);
}ガード節を使うと、「正常系の処理」が末尾に来るので、コードの流れが追いやすくなります。
Javaの現場では読みやすさが評価につながることも多いので、積極的に使っていきたいテクニックです。
boolean変数で条件式を読みやすく整理する
条件式が長くなってきたら、boolean変数に意味のある名前をつけて整理するのが効果的です。
// 読みにくい例
if (age >= 18 && hasMembership && !isBanned) {
System.out.println("入場できます");
}
// boolean変数で整理した例
boolean isAdult = age >= 18;
boolean isActiveMember = hasMembership && !isBanned;
if (isAdult && isActiveMember) {
System.out.println("入場できます");
}変数名が「条件の意味」を説明してくれるので、コードを読むだけで処理の意図がわかります。
コメントを書かなくても伝わる、セルフドキュメント化されたコードになりますよ。
if文とswitch文の使い分け基準
条件分岐にはif文のほかに`switch`文という選択肢もあります。
迷ったときは次の基準で判断するといいかなと思います。
- if文を使う場面 : 範囲比較(>=や<=)、複雑な論理条件(&&や||)、nullチェックやBoolean判定
- switch文を使う場面 : 特定の値との一致比較(数値・文字列・enumなど)が複数ある場合
// 値の一致比較が多い → switch文が読みやすい
String day = "Monday";
switch (day) {
case "Monday":
case "Tuesday":
case "Wednesday":
case "Thursday":
case "Friday":
System.out.println("平日です");
break;
case "Saturday":
case "Sunday":
System.out.println("休日です");
break;
default:
System.out.println("不明な曜日です");
}「値が一致するかどうかを複数比べる」場面ではswitch文の方がすっきりと書けます。
迷ったらif文で書いてみて、`case`がたくさん増えてきたらswitch文への書き換えを検討するといいですね。
現場のif文は「単に動けばいい」ではなく、「読みやすく・安全に」書くことが求められます。
この章で紹介したテクニックを意識するだけで、コードの品質がぐっと上がります。
nullチェックとequalsの書き方は、Javaを書くうえでよく使います。
Javaのif文の演習問題

ここまで学んだ内容を、実際に手を動かして確認しましょう。
この章では、3つの演習問題を用意しました。
- 基本のif〜else if〜elseを使った問題
- 論理演算子を使った問題
- ガード節・equalsを組み合わせた問題
解答例を確認する前に、まず自分でコードを書いてみることをおすすめします。
演習1:点数に応じてメッセージを出力しよう
scoreという変数に整数の点数が入っています。
次のルールでメッセージを出力するコードを書いてください。
- 90点以上 → 「S評価:優秀です」
- 70点以上90点未満 → 「A評価:よくできました」
- 50点以上70点未満 → 「B評価:合格です」
- 50点未満 → 「C評価:再試験が必要です」
解答例:
int score = 75;
if (score >= 90) {
System.out.println("S評価:優秀です");
} else if (score >= 70) {
System.out.println("A評価:よくできました");
} else if (score >= 50) {
System.out.println("B評価:合格です");
} else {
System.out.println("C評価:再試験が必要です");
}ポイントは「条件の順番」です。90以上から先にチェックすることで、正しく分岐できます。
演習2:会員ステータスによって入場判定をしよう
次の条件を満たすとき「入場できます」、それ以外は「入場できません」と出力するコードを書いてください。
- 年齢が18歳以上であること
- かつ、`isMember`が`true`であること、または`isVip`が`true`であること
解答例:
int age = 22;
boolean isMember = false;
boolean isVip = true;
if (age >= 18 && (isMember || isVip)) {
System.out.println("入場できます");
} else {
System.out.println("入場できません");
}`||`の部分を`()`でくくることで、「どちらか一方が true」という条件をまとめられます。
演算子の優先順位に注意が必要なので、迷ったら括弧をつけるのが安全です。
演習3:ユーザー名を検証するメソッドを書こう
validateUserというメソッドを作ってください。
引数に`String username`を受け取り、次のルールでメッセージを出力します。
- `username`が`null`の場合 → 「ユーザー名がnullです」と出力してreturn
- `username`が空文字の場合 → 「ユーザー名が空です」と出力してreturn
- `username`が`”admin”`と一致する場合 → 「管理者ログイン成功」と出力
- それ以外 → 「一般ユーザーとしてログイン:+ユーザー名」と出力
解答例:
public static void validateUser(String username) {
if (username == null) {
System.out.println("ユーザー名がnullです");
return;
}
if (username.isEmpty()) {
System.out.println("ユーザー名が空です");
return;
}
if ("admin".equals(username)) {
System.out.println("管理者ログイン成功");
return;
}
System.out.println("一般ユーザーとしてログイン:" + username);
}ガード節でnullチェックと空文字チェックを先に処理することで、メインの処理がシンプルになっています。
`”admin”.equals(username)`と、リテラル側からequalsを呼んでいる点もポイントです。
演習3はnullチェックとガード節が両方使えて、いい練習になりますね!
そうです。現場でもこのパターンはよく出てきますよ。しっかり手を動かして覚えておきましょう。
よくある質問(FAQ)

よくある質問と回答をまとめました。
- if文の条件式にセミコロン(;)をつけると何が起きますか?
- if文の条件にboolean型の変数を使うとき、== trueと書く必要はありますか?
- java if 文はどのJavaバージョンから使えますか?
順に答えていきます。
Q1:if文の条件式にセミコロン(;)をつけると何が起きますか?
`if (条件式);`と書くと、セミコロンで文が終わってしまい、`{}`の中の処理が条件に関係なく常に実行されます。
初心者がよくやるミスのひとつです。
int x = 5;
// NG:セミコロンのせいでif文が空になっている
if (x > 3);
{
System.out.println("これは常に実行される");
}コンパイルエラーにはならないため、気づきにくいバグの原因になります。
IDEの警告をしっかり確認する習慣をつけておくといいですよ。
Q2:if文の条件にboolean型の変数を使うとき、== trueと書く必要はありますか?
不要です。`boolean`型の変数はそのまま条件式として使えます。
boolean isLoggedIn = true;
// 冗長な書き方
if (isLoggedIn == true) { ... }
// 推奨:そのまま使う
if (isLoggedIn) { ... }
// falseの場合はNOT演算子を使う
if (!isLoggedIn) { ... }== trueと書いても動きますが、冗長で読みにくくなります。
booleanは「そのまま」使うのが、Javaらしい書き方です。
Q3:java if 文はどのJavaバージョンから使えますか?
if文はJavaの最初のバージョンから存在する基本構文です。
バージョンを気にせずどの環境でも使えます。
Java 14以降では`switch`式が正式機能として追加され、条件分岐の書き方の幅が広がりました。
ただし、基本的なif〜elseの構文は今後も変わらないので、しっかり覚えておいて損はないですね。
まとめ|java if 文の書き方は「基本」と「現場のコツ」の両輪で身につける

この記事では、java if 文の書き方について、基本構文から現場で使える実践テクニックまで解説しました。
最後に要点をまとめておきます。
- if文の基本は「条件が true なら処理を実行する」というシンプルなルール
- else・else ifで複数条件に対応でき、比較演算子と組み合わせて使う
- 論理演算子(&&・||・!)で複数の条件をまとめて書ける
- 文字列比較は必ずequalsを使い、null安全な書き方を意識する
- ガード節・boolean変数でコードをシンプルかつ読みやすく保てる
- switch文との使い分けは「値の一致比較が多い場面」がswitch文の出番
if文はJavaを書く上で毎日使う基本中の基本です。
構文を覚えるだけでなく、現場で通用する「読みやすいコード」を意識しながら書く習慣をつけていきましょう。
Javaエンジニアとして転職・フリーランスを目指している方には、プログラミングスクールの選び方も重要なテーマです。
おすすめのスクールと選び方を詳しくまとめた記事があるので、あわせてチェックしてみてください。

if文は書けば書くほど自然に身につきます。今日学んだことをもとに、ぜひ自分でコードを書いてみてください。