この記事では、Javaを学びたい初心者の方に向けて、if文の基本的な使い方や論理演算子・比較演算子の組み合わせ方法を実際のコード例を通して解説しています。
もしJavaを学び始めたばかりで、if文使い方に悩んでいるなら、本記事を参考にソースコードを書いてみましょう。
Javaのif文とは何か?
Javaのif文は、特定の条件で処理を分岐させる際に用いる構文です。判定条件が真(True)の場合に、特定の処理を実行します。
例えばユーザーの入力内容に応じ、異なるメッセージを表示する、計算結果によって処理を切り分けるといった時に利用するのが、「if」です。
if文はよく使う基本的な構文です。プログラミング初心者の方もif文を理解しておくと、複雑なプログラムも楽に対応可能になるので、押さえておきましょう。
Java言語を本格的に学びたいなら、オンラインの学習ツールを活用することを推奨します。以下の記事ではJavaを学ぶのにおすすめのeラーニングを紹介しています。
if文とelse文の基本的な使い方
Javaにおける条件分岐は、基本的なif文と、条件と異なるときの処理を記述するためのelseを使うのが一般的です。
if文は、条件が真(true)の場合に実行される処理を指定します。if文の基本の形は次のとおりです。
//ここに条件がtrueだった時の処理を記述
}
一方、else文は、if文の条件が偽(false)の場合に実行される処理を指定します。else文の基本の形は次のとおりです。
//ここに条件がtrueだった時の処理を記述
}else{
//ここに条件がfalseだった時の処理を記述
}
if文とelseを組み合わせることにより、プログラムの流れを制御し、さまざまな状況に対応することができます。
書き方さえ分かれば初心者の方でも、if文とelse文を使って次のような簡単な条件分岐のプログラムが作成可能です。

Javaのif文と論理演算子の活用例
ここからは、if文と論理演算子を組み合わせた複雑な条件式について詳しく解説していきます。
紹介する論理演算子は次の3つです。
- &&:複数条件を組み合わせたい
- ||:どちらかの条件を満たしたい
- !条件:条件を否定したい
if文はこれら論理演算子と組み合わせて使われることが多いので、使い方を知っておくと便利です。
&&:複数条件を組み合わせたい

if文でand演算子を使うことで、AとBの両方の条件を満たしたときの処理分岐が行えます。プログラムで記述する際は「&&」と書くことでandという意味になります。
たとえば、ある数値が1000以上かつ1500未満であるかをチェックする場合、次のように書きます。
int num =1200;
if (num >= 1000 && num < 1500) {
System.out.println(num+”は1000より大きく、1500より小さい値です。”);
}
この場合、両方の条件が真でなければ、if文の処理は実行されません。
今回のnum変数には1200が入っており、1000よりも大きく1500よりは小さい値なので条件が満たされたということになります。
||:どちらかの条件を満たしたい
or演算子は、プログラムにおいて複数条件のいずれかが真である場合に処理を行う条件式です。プログラムで記述する際は「||」と書いて使用します。
たとえば、次のようなコード例をご覧ください。
int b = 3;if (a > 10 || b < 5) {
System.out.println(“条件を満たしました”);
}
このコードでは、変数aが10より大きいか、bが5より小さいときにメッセージが表示されます。
| 変数名 | 条件 | 条件を満たしているか |
|---|---|---|
| 変数a(9) | 変数aが10より大きいか | 条件満たしていない |
| 変数b(3) | 変数bが5より小さいか | 条件達成 |
今回用意した変数aは条件を達成していませんでしたが、変数bは条件を満たしていたためメッセージが表示されるということになります。
!条件:条件を否定したい
not演算子は、条件式の真偽を反転させる役割を持ちます。
- 結果が真(True)の場合:Falseとなる
- 結果が偽(False)の場合:Trueとなる
not演算子は条件式の前に「!」を入れて記述します。次のサンプルコードをご覧ください。
int x = 5;
if (!(x == 10)){
System.out.println(“if文の処理に入りました。”);
}
上記のコードは、xが10でない場合にif文の中の処理を行うものです。
注意点として、実際の業務ではnot演算子の利用はあまり推奨されてはいません。理由としては、条件式の見間違いや見落としを発生させることがあるためです。もし、利用する際は否定式である必要があるかを考えてから使うようにしましょう。
Javaのif文と比較演算子の使い方
Javaのif文と比較演算子と組み合わせることで、数値や文字列の大小や等価を判定できます。
比較演算子には、等しい(==)、異なる(!=)、大きい(<)、小さい(>)などがあり、条件を明確に表現するのに役立ちます。
「<」「>」の比較演算子の使い方
「<」「>」は変数が特定の値より大きい、または小さいといった処理を行いたいときに使用する演算子です。
たとえば次のサンプルコードでは、scoreに75という値を代入し、50より大きいかつ100よりは小さいかを比較しています。
int score = 75;
if (score > 50 && score < 100) {
System.out.println(“合格です!”);
}
75はいずれも条件を満たしているので「合格です!」というメッセージが表示されます。
「==」の比較演算子の使い方
「==」とは、一致しているかを確認するときに使用する演算子です。
次のサンプルコードではinput変数に1を代入し、if文で一致しているかをチェックします。
System.out.println(“はい”);
}
inputには1が入っており、条件式に一致するので「はい」というメッセージが表示されます。
「!=」の比較演算子の使い方
「!=」とは、一致しない確認をするときに使用する演算子です。
たとえば、次のサンプルコードを見てみましょう。
if (60 != speed) {
System.out.println(“制限速度と違います。速度に注意しましょう。”);
} else {
System.out.println(“制限速度ちょうどです。”);
}
speed変数に50を代入し、if文で比較を行います。使用しているのは一致しないことを確認する演算子のため、「制限速度と違います。速度に注意しましょう。」というメッセージが表示されます。
文字列の一致チェックの方法
String型の文字列をif文でチェックする際は、比較演算子ではなく「.equals()」を使用します。
使い方としては、次のサンプルコードをご覧ください。
String inputPassword = “abc”;if (!password .equals(inputPassword )) {
System.out.println(“パスワードが間違っています。”);
}
実際のpasswordがpass123に対し、inputPasswordにはabcが格納されています。一致しない状態でif文の処理に入るため「パスワードが間違っています。」というメッセージが表示されます。
文字列を否定形として条件式に入れるときは、「!=」ではなく「.equals()」を使って比較を行うようにしましょう。
if文をシンプルに書くなら三項演算子がおすすめ

public static void main(String[] args) {
int money = 120; // 持っているお金(円)
int price = 150; // ジュースの価格(円)
// 三項演算子を使ってメッセージを決定
String message = (money >= price) ? “自販機で飲み物が買える!” : “お金が足りない…”;
// 結果を表示
System.out.println(message);
}
if文をシンプルに書くなら、三項演算子を活用するのがおすすめで、とくに短い条件分岐を行う際に活躍します。
三項演算子の基本の構文は次のとおりです。
この構文を使うことで、if文を省略できます。たとえば、年齢を比較する条件式を書くとします。
- if文の場合
int age = 18;if(age >= 20){
//大人と表示させる処理を記述
}else{
//未成年と表示させる処理を記述
} - 三項演算子の場合
int age = 18;
String result = (age >= 20) ? “大人” : “未成年”;
//未成年と表示される
このように、三項演算子を扱うことでif-elseを使って分岐を書く必要がなくなります。
ただし、三項演算子を扱う上での注意点として、複雑な条件式を行う際は不適切になります。可読性を下げる原因にもなるので、使うときはシンプルで短い条件式のときだけにしましょう。
Java言語のif-else文を使って本格的なプログラムを作成したい人は、以下の記事が役立ちます。ぜひ参考にしてみてください。
ループ処理をif文で制御する方法
if文を使えばループ処理を行う際に無限ループにならないように制御することもできます。たとえば次のサンプルコードをご覧ください。
public static void main(String[] args) {
int sum = 0; // 合計値
int i = 1; // 1からスタート
// 無限ループを使用
while (true) {
sum += i; // 合計にiを足す
// 合計が10の倍数に到達したらログに出力
if (sum % 10 == 0) {
System.out.println(“合計が” + sum + “に到達しました。”);
}
// 合計が100に到達したらループを終了
if (sum == 100) {
break; // ループを終了
}
}
// 最終的な合計を表示
System.out.println(“最終的な合計: ” + sum);
}
ループ処理(上記例でのwhile)は、特定の条件を満たすまで処理を繰り返す構文です。条件が満たされなければ無限ループし、フリーズしたり、予期せぬエラーの原因となってしまうため、if文を用いてループ処理を制御します。
きちんとループ処理が制御できていれば、以下の画像のように想定した結果を返してくれます。

想定外のデータが入力されたり、思わぬユーザー操作で無限ループとなってしまうこともあるため、if文で処理を制御する必要があるのです。
if文は単に条件分岐を行うだけでなく、ループの制御や安全なプログラム設計のために必要不可欠な構文といえるでしょう。
if文の応用編 数値を降順に並べるプログラム例

上記は、今回紹介する数値を降順にソートするサンプルコードです。Javaでは、複数の数値を配列としてまとめて管理できます。
ここでは、if文を使って各数値を比較しながら、高い順(降順)に並べ替える方法を紹介します。比較の条件は「もしAの数字がBより大きければ、位置を入れ替える」といったものです。
それでは、次の3つに分割して解説していきます。
- 配列の定義
- forとifでソート処理
- 結果を表示する処理
①配列の定義
int[] numArrays = { 120, 80, 100, 150 };// 2. 数値をコピーしてソート用の配列を作る
int[] sortedNum = numArrays.clone();
1つ目は数値4つを配列に格納したものです。
| 配列番号 | 入っている数値 |
|---|---|
| 0番目 | 120 |
| 1番目 | 80 |
| 2番目 | 100 |
| 3番目 | 150 |
配列の番号と各数値は上記の表になります。
2つ目はソート用の配列を複製したものになります。これにより、変更前の配列とソート後の配列の2つが用意できます。
②forとifでソート処理
for (int i = 0; i < sortedNum.length – 1; i++) {
for (int j = i + 1; j < sortedNum.length; j++) {// 値が小さい場合、2つの値を入れ替える
if (sortedNum[i] < sortedNum[j]) {// 一時変数 temp を使って、sortedNum[i] と sortedNum[j] を入れ替え
int temp = sortedNum[i];
sortedNum[i] = sortedNum[j];
sortedNum[j] = temp;}}}
ソート用配列を用意したら、今度は実際にソート処理を行います。ソートをするにはfor文とif文を活用します。
一見、複雑そうなプログラムに見えますが、やっていることとしては次のとおりです。

ソート配列の0番目と1番目を比較、0番目と2番目を比較、0番目と3番目を比較し、3番目の方が数字が高いので入れ替えをしているというプログラムです。
③結果を表示する処理
System.out.println(“数値を高い順に並べた結果:”);
for (int num : sortedNum) {
System.out.println(num);
}
ソートが完了したら、結果を表示させます。今回はfor拡張を使って配列の中身をすべて出力するソースにしました。
作ったプログラムを実行すると、次のような結果がコンソール画面に表示されるはずです。

Javaのif文の基本から応用までのまとめ
今回は、Javaでのif文とelse文の使い方を学びたい方に向けて、if-elseの基本的な書き方から論理演算子・比較演算子との組み合わせ方を紹介しました。
Javaの条件分岐は、プログラムの流れを制御するために使われるのでプログラムを作る上では必要な要素になります。if-else文の使い方をマスターして、まずは簡単なプログラムを作成してみてはいかがでしょうか。