Java の if-else 文を使って条件分岐を詳しく学ぼう
新人
「Java で条件によって違う動作をさせる方法はありますか?」
先輩
「あるよ!if-else 文 を使うと、条件によって異なる処理を実行できるんだ。」
新人
「if 文とどう違うんですか?」
先輩
「if 文は条件を満たしたときだけ処理を実行するけど、if-else 文を使うと、条件を満たさない場合の処理も書けるんだよ。詳しく説明しよう!」
1. if-else 文とは?(基本的な説明)
Java の if-else 文 は、条件に応じて処理を分けるための制御文です。例えば、点数が 80 点以上なら「合格」と表示し、それ以外なら「不合格」と表示する場合に使います。
if-else 文の特徴
- 条件が true(真) なら、if ブロック内の処理を実行する
- 条件が false(偽) なら、else ブロック内の処理を実行する
- プログラムの流れを分岐させることができる
例えば、「もしお店が開いていたら入る、開いていなかったら帰る」という状況をプログラムで表現できます。
2. if-else 文の基本的な書き方
if-else 文を使って、条件によって異なる処理を実行する基本的な書き方を見てみましょう。
if-else 文の基本構文
public class IfElseExample {
public static void main(String[] args) {
int score = 70;
if (score >= 80) { // もし score が 80 以上なら
System.out.println("合格です!");
} else { // それ以外なら
System.out.println("不合格です。");
}
}
}
不合格です。
このプログラムでは、変数 score の値が 80 以上なら「合格です!」と表示されますが、それ以外なら「不合格です。」と表示されます。
if-else 文のポイント
- if の後に条件を書く(例:
if (score >= 80)) - else の後には条件を書かない(else は
ifの条件が false の場合に実行される) - { }(ブロック)内に、それぞれの処理を書く
例えば、score の値が 90 なら「合格です!」と表示されますが、60 なら「不合格です。」と表示されます。
3. if-else 文で数値の条件を判定する(例:点数による評価)
if-else 文は、数値を使った条件分岐にもよく使われます。例えば、テストの点数に応じて「合格」か「不合格」を判定するプログラムを作成してみましょう。
数値の条件を判定する if-else 文の例
public class ScoreCheck {
public static void main(String[] args) {
int score = 75;
if (score >= 80) { // 80点以上なら
System.out.println("合格です!");
} else { // それ以外なら
System.out.println("不合格です。");
}
}
}
不合格です。
このプログラムでは、score の値が 80 以上なら「合格です!」と表示され、それ未満なら「不合格です。」と表示されます。
応用例:年齢による判定
年齢によって成人か未成年かを判定するプログラムも作成できます。
public class AgeCheck {
public static void main(String[] args) {
int age = 17;
if (age >= 18) { // 18歳以上なら
System.out.println("あなたは成人です。");
} else {
System.out.println("あなたは未成年です。");
}
}
}
あなたは未成年です。
4. if-else 文で文字列の条件を判定する(例:"yes" なら実行)
if-else 文は、文字列の条件を判定することもできます。例えば、特定のキーワードが一致する場合に処理を実行するプログラムを作成してみましょう。
文字列の条件を判定する if-else 文の例
public class StringCheck {
public static void main(String[] args) {
String input = "yes";
if (input.equals("yes")) { // 文字列が "yes" なら
System.out.println("処理を実行します。");
} else {
System.out.println("処理を中止します。");
}
}
}
処理を実行します。
文字列の比較で注意するポイント
- 文字列の比較には
==ではなくequals()メソッドを使う input.equals("yes")のように書くことで、正しく比較できる
5. if-else 文の中で比較演算子(==, >, <, >=, <=)を使う方法
if-else 文では、比較演算子を使って条件を作ることができます。比較演算子には以下の種類があります。
主な比較演算子
==… 左右の値が等しい場合にtrue!=… 左右の値が異なる場合にtrue>… 左の値が右の値より大きい場合にtrue<… 左の値が右の値より小さい場合にtrue>=… 左の値が右の値以上の場合にtrue<=… 左の値が右の値以下の場合にtrue
比較演算子を使った if-else 文の例
public class ComparisonExample {
public static void main(String[] args) {
int a = 10;
int b = 20;
if (a < b) { // a が b より小さいなら
System.out.println("a は b より小さいです。");
} else {
System.out.println("a は b 以上です。");
}
}
}
a は b より小さいです。
応用例:偶数か奇数かを判定する
入力された数値が偶数か奇数かを判定するプログラムを作成してみましょう。
public class EvenOddCheck {
public static void main(String[] args) {
int number = 10; // ここで数値を指定
if (number % 2 == 0) { // 2 で割った余りが 0 なら偶数
System.out.println("偶数です。");
} else {
System.out.println("奇数です。");
}
}
}
偶数です。
このように、比較演算子を使うことでさまざまな条件を判定し、プログラムの動作を変更できます。
6. if-else 文で論理演算子(&&, ||)を使う方法(複数の条件をチェック)
if-else 文では、複数の条件を組み合わせてチェックすることができます。これを実現するために論理演算子を使用します。
論理演算子の種類
&&(AND条件) … 両方の条件がtrueの場合のみ処理を実行||(OR条件) … どちらかの条件がtrueなら処理を実行
&&(AND条件)の使用例
テストの点数が 80 以上で、かつ出席率が 90% 以上なら「合格」と表示するプログラムを作ってみましょう。
public class AndOperatorExample {
public static void main(String[] args) {
int score = 85;
int attendance = 95;
if (score >= 80 && attendance >= 90) {
System.out.println("合格です!");
} else {
System.out.println("条件を満たしていません。");
}
}
}
合格です!
||(OR条件)の使用例
テストの点数が 80 以上、または特別加点が 10 点以上なら「合格」と表示するプログラムを作成してみましょう。
public class OrOperatorExample {
public static void main(String[] args) {
int score = 70;
int extraCredit = 15;
if (score >= 80 || extraCredit >= 10) {
System.out.println("合格です!");
} else {
System.out.println("条件を満たしていません。");
}
}
}
合格です!
7. if-else 文を使った応用例(ユーザーの入力による判定)
if-else 文は、ユーザーの入力によって処理を分岐させる際にもよく使われます。例えば、パスワードの入力が正しいかどうかを判定するプログラムを作成してみましょう。
パスワード判定のプログラム
public class PasswordCheck {
public static void main(String[] args) {
String correctPassword = "java123";
String inputPassword = "java123"; // ユーザーが入力したパスワード
if (inputPassword.equals(correctPassword)) {
System.out.println("ログイン成功!");
} else {
System.out.println("パスワードが違います。");
}
}
}
ログイン成功!
アクセス制限の判定
ユーザーの権限レベルに応じて異なるメッセージを表示するプログラムを作成してみましょう。
public class AccessControl {
public static void main(String[] args) {
String userRole = "admin"; // ユーザーの役割
if (userRole.equals("admin")) {
System.out.println("管理者権限でアクセス可能です。");
} else {
System.out.println("一般ユーザーとしてアクセス中です。");
}
}
}
管理者権限でアクセス可能です。
8. 練習問題:if-else 文を使ったプログラムを作ろう
if-else 文を使った練習問題を解いて、理解を深めましょう。
問題1: 学生の成績判定
テストの点数に応じて、以下のように評価を出すプログラムを作成してください。
- 80 点以上なら「優秀です!」
- 60 点以上なら「合格です。」
- それ以外なら「不合格です。」
解答例
public class GradeCheck {
public static void main(String[] args) {
int score = 75;
if (score >= 80) {
System.out.println("優秀です!");
} else if (score >= 60) {
System.out.println("合格です。");
} else {
System.out.println("不合格です。");
}
}
}
合格です。
問題2: お店の営業時間判定
現在の時刻(24 時間表記)に応じて、以下のメッセージを表示するプログラムを作成してください。
- 10 時から 20 時の間なら「お店は営業中です。」
- それ以外なら「お店は閉店しています。」
解答例
public class ShopHours {
public static void main(String[] args) {
int currentTime = 15; // 現在の時刻(例:15時)
if (currentTime >= 10 && currentTime <= 20) {
System.out.println("お店は営業中です。");
} else {
System.out.println("お店は閉店しています。");
}
}
}
お店は営業中です。