Java の if 文について
このページでは、Java の if
文について詳しく解説します。基本的な構文から、条件分岐の応用例まで幅広く取り上げます。
基本構文
Java の if
文は、指定された条件が true
の場合にのみコードを実行します。
if (条件) {
// 条件が true の場合に実行されるコード
}
例:
int number = 10;
if (number > 5) {
System.out.println("number は 5 より大きい");
}
if-else 文
if-else
文を使うと、条件が false
の場合に別のコードを実行できます。
if (条件) {
// 条件が true の場合に実行されるコード
} else {
// 条件が false の場合に実行されるコード
}
例:
int number = 3;
if (number > 5) {
System.out.println("number は 5 より大きい");
} else {
System.out.println("number は 5 以下");
}
ネストされた if 文
if
文の中に別の if
文を入れることができます。これをネストと言います。
if (条件1) {
if (条件2) {
// 条件1 と条件2 が両方 true の場合に実行されるコード
}
}
例:
int number = 8;
if (number > 5) {
if (number < 10) {
System.out.println("number は 5 より大きく、10 未満");
}
}
else-if 文
複数の条件を評価する場合、else if
を使用します。
if (条件1) {
// 条件1 が true の場合に実行されるコード
} else if (条件2) {
// 条件1 が false で条件2 が true の場合に実行されるコード
} else {
// すべての条件が false の場合に実行されるコード
}
例:
int number = 15;
if (number < 5) {
System.out.println("number は 5 未満");
} else if (number < 10) {
System.out.println("number は 5 以上 10 未満");
} else {
System.out.println("number は 10 以上");
}
複数条件の評価
複数の条件を組み合わせるには、&&
(論理積)または ||
(論理和)を使用します。
if (条件1 && 条件2) {
// 両方の条件が true の場合に実行されるコード
}
if (条件1 || 条件2) {
// いずれかの条件が true の場合に実行されるコード
}
例:
int age = 20;
boolean hasLicense = true;
if (age >= 18 && hasLicense) {
System.out.println("運転できます");
} else {
System.out.println("運転できません");
}
ショートサーキット評価
Java では、&&
や ||
を使用する条件式で、評価を途中で止める「ショートサーキット評価」が行われます。
例:
int x = 5;
if (x > 0 || x / 0 == 1) {
System.out.println("条件が短絡評価されました");
}
この場合、x > 0
が true
なので、x / 0
の評価は行われずエラーになりません。
よくある間違い
Java の if
文でよくある間違いを以下に示します。
- 条件式の代わりに代入式を使用する:
// 間違い:
if (x = 10) {
System.out.println("エラーになる");
}
// 正しい:
if (x == 10) {
System.out.println("条件が正しく評価される");
}
// 間違い:
if (x > 0)
System.out.println("正の数");
System.out.println("このコードは常に実行される");
// 正しい:
if (x > 0) {
System.out.println("正の数");
}
実践的な例
以下は、実際のプログラムで使用される例です。
// ユーザーの入力値に基づく処理
import java.util.Scanner;
public class IfExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("年齢を入力してください: ");
int age = scanner.nextInt();
if (age < 18) {
System.out.println("未成年です");
} else if (age < 65) {
System.out.println("成人です");
} else {
System.out.println("高齢者です");
}
}
}
このコードでは、if-else
文を使用して年齢に基づくメッセージを表示します。