ゼロから学ぶJava
トップ/条件分岐
条件分岐15章 / 全26

else / else if

この章で学ぶこと

if 文に elseelse if を組み合わせて、「そうでなければ」「さもなくば〜なら」という処理を書く方法を学びましょう。

「そうでなければ」を表したい

前の章の if 文は「条件が true のとき」だけ動きました。「true のとき○○、false のとき××」の両方を書きたい場面があります。

else(そうでなければ)と else if(さもなくば〜なら)を使うと、複数の分岐が書けます。

else if で3段階の分岐を作る

点数が 75点 のとき。

text
1
java
1public class Main {
2 public static void main(String[] args) {
3 int score = 75;
4
5 if (score >= 90) {
6 System.out.println("秀");
7 } else if (score >= 80) {
8 System.out.println("優");
9 } else if (score >= 70) {
10 System.out.println("良");
11 } else {
12 System.out.println("可");
13 }
14 }
15}
  • 条件は上から順番にチェックされ、最初に true になったブロックだけ実行される
  • if (score >= 90) → 「75は90以上か?」→ false、次へ
  • else if (score >= 80) → 「75は80以上か?」→ false、次へ
  • else if (score >= 70) → 「75は70以上か?」→ true、「良」を表示して終了
  • else → いずれにも当てはまらないときの受け皿(今回は実行されない)
90以上? → No
80以上? → No
70以上? → Yes → 「良」を表示して終了

ポイント

else で「そうでなければ」、else if で「さもなくば〜なら」という処理が書けます。条件は上から順に確認されます。

よくあるミス

else if の条件の順番を間違える

「70以上」を「90以上」より前に書くと、90点でも「良」と判定されてしまいます。広い条件を上に書いてしまうと、それ以降の条件に到達しません。条件は大きい値から順に書くのが基本です。

まとめ

  • else で「条件を満たさないとき」の処理を書く
  • else if で3つ以上の条件を順番にチェックできる
  • 条件は上から順に確認され、最初に true になったブロックだけ実行される
  • 最後の else はどの条件にも当てはまらないときの受け皿

確認問題

else if を使う目的として正しいものはどれですか?