条件分岐とは、ある条件によって処理を分岐させる処理のことデス。
条件式が真の場合に処理Aを実行し、偽の場合に処理Bを実行する、といったように、条件に応じて異なる処理を実行することができます。
Javaの条件分岐コード
Javaで条件分岐を行うには、主に以下の2つの方法があります。
- if文
- switch文
if文
if文は、最も基本的な条件分岐の方法です。
if文の構文は以下のとおりです。
if (条件式) {
// 条件式が真の場合に実行する処理
}
条件式が真の場合、ブロック内の処理が実行されます。
条件式が偽の場合、ブロック内の処理は実行されません。
1. 単純な if 文
if
文は、指定した条件が真の場合にコードブロックを実行します。
以下は単純な if
文のコード例です。
int number = 10;
if (number > 5) {
System.out.println("numberは5より大きいです。"); // 真のときの処理
}
2. if-else 文
if-else
文は、指定した条件が真の場合と偽の場合に異なるコードブロックを実行します。
int number = 3;
if (number > 5) {
System.out.println("numberは5より大きいです。"); // 真のときの処理
} else {
System.out.println("numberは5以下です。"); // 偽のときの処理
}
3. else if 文
else if
文は、複数の条件をテストし、最初に真となる条件に合致するコードブロックを実行します。
int number = 3;
if (number > 5) {
System.out.println("numberは5より大きいです。"); // ↑のifが真のときの処理
} else if (number == 5) {
System.out.println("numberは5です。"); // 最初のifが偽で ↑のifが真のときの処理
} else {
System.out.println("numberは5未満です。"); // すべて偽のときの処理
}
if文のネスト
if文は上記コードのように、ネストすることができます。
ネストとは入れ子構造のことで、ここではif文の中にif文を組み合わせることを指します。
ネストすることで、より複雑な条件分岐を行うことができます。
switch文
switch文は、if文よりも複雑な条件分岐を行う場合に便利な方法です。
switch文の構文は以下のとおりです。
switch (式) {
case 値1:
// 値1が式と等しい場合に実行する処理
break;
case 値2:
// 値2が式と等しい場合に実行する処理
break;
...
default:
// 式と等しい値がない場合、または式がenum型でない場合に実行する処理
break;
}
式の値と一致するcase
文のブロック内の処理が実行されます。case
文のブロックを抜けるには、break
文を使用します。default
文は、式と等しい値がない場合に実行されます。
例:
int num = 10;
switch (num) {
case 1:
System.out.println("numは1です。");
break;
case 2:
System.out.println("numは2です。");
break;
default:
System.out.println("numは1または2ではありません。");
break;
}
このコードでは、変数num
の値によって処理を分岐します。num
の値が1の場合は「numは1です。」と出力し、2の場合は「numは2です。」と出力します。num
の値が1または2以外の場合は「numは1または2ではありません。」と出力します。
条件分岐のまとめ
Javaプログラミングにおける条件分岐は、ある条件によって処理を分岐させる処理のことです。
if文とswitch文の2つの方法があり、if文は比較的シンプルな条件分岐、switch文は複雑な条件分岐を行う場合に便利です。
以下に、条件分岐の表をまとめます。
方法 | 構文 | 説明 |
---|---|---|
if文 | if (条件式) { 処理; } else if (条件式) { 処理; } else{ 処理; } | 条件式が真の場合に処理が実行される |
switch文 | switch (式) { case 値1: 処理; break; case 値2: 処理; break; ... default: 処理; break; } | 式の値と一致するcase文のブロック内の処理が実行される |
論理演算子を使用した条件分岐
条件分岐をさらに制御するために、論理演算子(&&
、||
など)を使用することができます。
論理演算子を使用した条件分岐の例
int age = 25;
boolean isStudent = true;
if (age >= 18 && isStudent) {
System.out.println("成人で学生です。");
} else if (age >= 18 && !isStudent) {
System.out.println("成人で学生ではありません。");
} else {
System.out.println("未成年です。");
}
上記コードは、変数age
の値が18歳以上かどうかと、変数isStudent
の値がtrue
かどうかを条件に、3つの異なる出力を表示するコードです。
1.まず、if文の条件式は、age >= 18 && isStudent
です。
これは、ageの値が18歳以上であり、かつisStudentの値がtrueであることを意味します。
この条件が満たされた場合、System.out.println("成人で学生です。")
と出力されます。
2.次に、else if文の条件式は、age >= 18 && !isStudent
です。これは、ageの値が18歳以上であり、かつisStudentの値がfalseであることを意味します。この条件が満たされた場合、System.out.println("成人で学生ではありません。")
と出力されます。
3.最後に、else文の条件式は、すべての条件式が満たされない場合です。
この場合、System.out.println("未成年です。")
と出力されます。
上記コードの場合、実行結果は以下のとおりです。
成人で学生です。
これは、変数ageの値が25歳であり、かつ変数isStudentの値がtrueであるため、最初の条件式が満たされ、System.out.println(“成人で学生です。”)と出力されたためです。
なお、このコードをif文のネストで表現すると、以下のようになります。
int age = 25;
boolean isStudent = true;
if (age >= 18) {
if (isStudent) {
System.out.println("成人で学生です。");
} else {
System.out.println("成人で学生ではありません。");
}
} else {
System.out.println("未成年です。");
}
このコードでは、最初のif文でageの値が18歳以上かどうかを判定し、trueの場合はisStudentの値を判定するように変更しています。
if文って便利。