【Java】レッスン2-2:if文による分岐処理を理解しよう

一つ前のページでは比較演算子と論理演算子について学習しました。
今回は if文による分岐処理 について見ていきましょう。
Lesson1:基礎文法編
Lesson2:制御構造編
・Lesson2-1:比較演算子と論理演算子を理解しよう
・Lesson2-2:if文による分岐処理を理解しよう ◁今回はココ
・Lesson2-3:switch文による分岐処理を理解しよう
・Lesson2-4:for文による繰り返し処理を理解しよう
・Lesson2-5:while文による繰り返し処理を理解しよう
・Lesson2-6:繰り返しを制御しよう
・Lesson2-7:配列を理解しよう
・Lesson2-8:エラーメッセージを読めるようになろう
・Lesson2-9:例外処理を理解しよう
・確認問題2-☆1:ハイアンドロー ゲームを作ろう
・確認問題2-☆2:数字当てゲームを作ろう
・確認問題2-☆3:じゃんけんゲームを作ろう
Lesson3:メソッド編
Lesson4:コレクション編
Lesson5:クラス編
if文とは?|条件に応じた処理分岐の基本と書き方
プログラムに「条件によって処理を変える力」を与えるのが、if文です。
if文を使えば「ある条件が成り立つときだけ特定の処理を行う」「複数の条件に応じて処理を切り替える」といった柔軟な分岐が可能になります。
本記事ではJava初心者でも理解しやすいように、if文の基本構文からelse・else ifを使った複数条件の書き方までを、実例コードとともに解説します。
最後まで読むことで、プログラムに判断力を加え、より動きのあるアプリケーションを作れるようになります。それでは、if文の世界を一緒に学んでいきましょう。

if文の基本構文と使い方|trueのときだけ処理する方法
if文 は指定された条件が「真(true)」の場合にのみ、特定の処理を実行します。
基本的な構文は以下の通りです。
if (条件) {
// 条件が真のとき実行されるコード
}例えば変数 a が10より大きい場合にメッセージを表示するコードは以下のように書けます。
int a = 15;
if (a > 10) { // もし変数aの値が10よりも大きいなら
System.out.println("aは10より大きい"); // この処理を実行
}この例ではa が10より大きいので、"aは10より大きいです" と出力されます。
aの値を5に変更すると、何も出力されません。
if-else文で条件式に応じて処理を分ける書き方
if-else文 を使うと条件が真でない場合に別の処理を実行することができます。
構文は次のようになります。
if (条件) {
// 条件が真のとき実行されるコード
} else {
// 条件が偽のとき実行されるコード
}次のコードは変数 a の値が10より大きいか小さいかで異なるメッセージを表示します。
int a = 5;
if (a > 10) { // もし変数aの値が10よりも大きいなら
System.out.println("aは10より大きい"); // この処理を実行
} else { // もしそうでないなら
System.out.println("aは10以下"); // この処理を実行
}この場合a が10以下なので、"aは10以下" と表示されます。
else ifで複数条件を分岐する方法|条件を順番に判定する仕組み
else if文 を使うことで、複数の条件を持つ分岐処理が可能になります。
構文は次の通りです。
if (条件1) {
// 条件1が真のとき実行されるコード
} else if (条件2) {
// 条件2が真のとき実行されるコード
} else {
// すべての条件が偽のとき実行されるコード
}以下のコードは変数 a の値に応じて異なるメッセージを表示します。
int a = 15;
if (a > 20) { // もし変数aの値が20よりも大きいなら
System.out.println("aは20より大きい"); // この処理を実行
} else if (a > 10) { // もし変数aの値が20より小さく、10より大きいなら
System.out.println("aは10から20の間"); // この処理を実行
} else { // もしどの条件も満たさないなら
System.out.println("aは10以下"); // この処理を実行
}この例ではa は15なので、"aは10から20の間" が表示されます。
if文の活用コード例|年齢に応じたメッセージ表示
ここでは実際に if、if-else、および else if を使ってユーザーの年齢に応じてメッセージを表示する例を示します。
int age = 25;
if (age < 13) { // もし13歳未満なら
System.out.println("あなたは子供です");
} else if (age < 20) { // もし13歳未満ではなく、20歳未満なら
System.out.println("あなたはティーンエイジャーです");
} else if (age < 65) { // もし13歳未満でも20歳未満でもなく、65歳未満なら
System.out.println("あなたは成人です");
} else { // もしどの条件も満たさないなら
System.out.println("あなたは高齢者です");
}このコードでは、age の値に応じて出力が変わります。
ageが13未満の場合は「子供です」と表示されます。ageが13以上20未満の場合は「ティーンエイジャーです」と表示されます。ageが20以上65未満の場合は「成人です」と表示されます。ageが65以上の場合は「高齢者です」と表示されます。
まとめ|条件に応じた処理を組み立てる基礎を習得
今回の学習ではif文の基本構文からelseを使った二分岐、さらにelse ifによる複数条件分岐までを順を追って理解しました。
条件式の評価方法や分岐の流れを身につけたことで、プログラムが状況に応じて異なる動作をするように設計できるようになりました。
これにより、アプリケーションの柔軟性と表現力が大きく向上します。
学んだ知識を活かしながら、より多彩な処理を組み立てるスキルを磨いていきましょう。
練習問題|点数に応じた評価メッセージを出力しよう

テストの点数に応じて異なるメッセージを表示するプログラムを作成しましょう。
ユーザーから入力された点数に基づいて、分岐処理を用いて異なるメッセージを表示します。
点数が90点以上なら「素晴らしい!優秀な成績です。」、70点以上90点未満なら「よくできました!」、50点以上70点未満なら「合格です。もう少し頑張りましょう。」、50点未満なら「不合格です。再試験が必要です。」と表示しましょう。
この問題の要件
以下の要件に従ってコードを完成させてください。
Scannerクラスを使用して、ユーザーが入力する点数(0~100の整数)を受け取ること。- 点数に応じて以下の条件に基づきメッセージを表示すること。
- 90点以上:
"素晴らしい!優秀な成績です。" - 70点以上90点未満:
"よくできました!" - 50点以上70点未満:
"合格です。もう少し頑張りましょう。" - 50点未満:
"不合格です。再試験が必要です。"
- 90点以上:
- 必要に応じてif文とelse if文を用いた分岐処理を実装すること。
ただし、以下のような実行結果となること。
テストの点数を入力してください(0~100): 85 よくできました!
この問題を解くヒント
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
- ヒント1【コードの構成を見る】
-
正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)1:
Scannerクラスのインポート
2:クラスTestScoreの定義
□ メインメソッドmainの定義
□ □Scannerクラスのインスタンスscannerを作成
□ □ テストの点数を入力するメッセージを表示
□ □ 変数scoreを宣言し、scannerで入力を取得
□ □ if文にてscoreが90以上かを判定
□ □ □ 「素晴らしい!優秀な成績です。」と出力
□ □ else if文にてscoreが70以上かを判定
□ □ □ 「よくできました!」と出力
□ □ else if文にてscoreが50以上かを判定
□ □ □ 「合格です。もう少し頑張りましょう。」と出力
□ □ else文(scoreが50未満の場合)
□ □ □ 「不合格です。再試験が必要です。」と出力
- ヒント2【穴埋め問題にする】
-
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
import java.util.Scanner; // 入力を受け取るためのScannerクラスをインポート public class TestScore { // テストの点数による評価を行うクラス public static void main(String[] args) { // スキャナークラスのインスタンスを作成し、ユーザー入力を受け取る準備 Scanner scanner = new Scanner(System.in); // テストの点数を入力するように指示を表示 System.out.print("テストの点数を入力してください(0~100): "); // 入力された点数を整数型で取得 int score = scanner.nextInt(); /* 【穴埋め問題1】 ここでif文を使ってscoreの値に応じて異なるメッセージを表示するコードを書いてください。 */ } }
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
練習問題の解答と解説
この問題の正解コードとその解説は以下の通りです。
クリックして開いて確認してください。
- 正解コード
-
import java.util.Scanner; // 入力を受け取るためのScannerクラスをインポート public class TestScore { // テストの点数による評価を行うクラス public static void main(String[] args) { // スキャナークラスのインスタンスを作成し、ユーザー入力を受け取る準備 Scanner scanner = new Scanner(System.in); // テストの点数を入力するように指示を表示 System.out.print("テストの点数を入力してください(0~100): "); // 入力された点数を整数型で取得 int score = scanner.nextInt(); // if文による分岐処理を使って、点数に応じたメッセージを表示 if (score >= 90) { // 90点以上の場合のメッセージ System.out.println("素晴らしい!優秀な成績です。"); } else if (score >= 70) { // 70点以上90点未満の場合のメッセージ System.out.println("よくできました!"); } else if (score >= 50) { // 50点以上70点未満の場合のメッセージ System.out.println("合格です。もう少し頑張りましょう。"); } else { // 50点未満の場合のメッセージ System.out.println("不合格です。再試験が必要です。"); } } }
- 正解コードの解説
-
コードをブロックごとに分割して解説します。
必要なクラスのインポート
import java.util.Scanner;
このコードではユーザーからの入力を受け取るために
Scannerクラスを使用します。Scannerクラスをインポートすることで、キーボードからのデータ入力が可能になります。メインクラスとメソッドの定義
public class TestScore { public static void main(String[] args) {TestScoreというクラスを定義し、mainメソッド内でプログラムの処理を行います。mainメソッドはJavaプログラムの開始点です。ユーザーからの入力受付とメッセージ表示
Scanner scanner = new Scanner(System.in); System.out.print("テストの点数を入力してください(0~100): "); int score = scanner.nextInt();ここでは
Scannerクラスのインスタンスscannerを作成し、nextInt()メソッドを使用してユーザーが入力した整数値(テストの点数)を取得します。System.out.printでメッセージを表示し、ユーザーに点数の入力を促しています。分岐処理による点数評価
ここがプログラムのメインの処理部分です。
点数に応じて異なる評価メッセージを表示するために、
if文を使用して条件分岐を行います。if (score >= 90) { System.out.println("素晴らしい!優秀な成績です。"); } else if (score >= 70) { System.out.println("よくできました!"); } else if (score >= 50) { System.out.println("合格です。もう少し頑張りましょう。"); } else { System.out.println("不合格です。再試験が必要です。"); }この部分では入力された点数(
score)に応じて、以下のように分岐処理が行われます。- 90点以上:
if (score >= 90)がtrueの場合、"素晴らしい!優秀な成績です。"と表示されます。 - 70点以上90点未満:
else if (score >= 70)がtrueの場合、"よくできました!"と表示されます。 - 50点以上70点未満:
else if (score >= 50)がtrueの場合、"合格です。もう少し頑張りましょう。"と表示されます。 - 50点未満: どの条件にも当てはまらない場合(つまり50点未満の場合)、
else文の処理が実行され、"不合格です。再試験が必要です。"と表示されます。
- 90点以上:
まとめ
このコードは基本的なユーザー入力と条件分岐の使い方を学ぶための良い例です。
Scannerクラスによる入力処理と、if文を使った条件分岐の仕組みを理解することで、さまざまな入力に応じた応答を行えるようになります。
次はこの基本を活用して異なる条件を増やしたり、複雑なロジックを追加する練習をしてみましょう!


