すずろぐ

人生大逆転を目指す、鈴木俊吾の成長日記

スポンサーリンク

Java入門 第4回 if, else, else if文を使った条件分岐

プログラミング

こんにちは、すずしんです。

今回の記事では、Java入門の第4回ということで、if,else,else if文を使った条件分岐を扱います。 条件分岐はプログラミングをする上で重要です。 しっかりと使い方をマスターしましょうね。

条件分岐とは?

条件分岐というのは、ある条件に応じてその後の処理を分けることを言います。 もしAならBする、そうでなければCをするという具合に、条件によって処理内容を変更します。 Javaで条件分岐をするにはif文を使います。

if文

if文は、もし~ならという条件を決める部分になります。 使い方のフォーマットは以下のような感じです。

if(条件式) {
  処理内容;
}

if文では条件式をまず評価します。 その結果、trueになるとその後の{}ブロック内の処理を実行します。 条件式は、関係演算子や論理演算子などを使って記述します。

利用可能な関係演算子の例には以下のようなものがあります。

関係演算子使用例意味
<a < baはbよりも小さい
<=a <= baはb以下
>a > baはbよりも大きい
>=a >= baはb以上
!=a != baとbは等しくない
==a == baとbは等しい
instanceofa instanceof baがbのインスタンスかどうか?

論理演算子の例には以下のようなものがあります。 論理演算子は、AかつB、AまたはB、などといった複数の条件をつなげる時に使います。

関係演算子使用例意味
&&A && BAかつB
||A || BAまたはB
!!AAではない

例えば、変数priceの値が100以上200未満なら「100円以上200円未満です。」と表示したい場合は以下のように書きます。 この例の場合は、priceは100以上200未満ですので、その後のブロックの内容が処理されて「100円以上200円未満です。」と表示されます。

int price = 150; // 適当な値
if(price >= 100 && price < 200) {
    System.out.println("100円以上200円未満です。");
}

else文

if文では、もし~なら~するという処理を記述できました。 では、そうでない場合にはどうするのでしょうか? その時にはelse文を使います。

条件Cを満たした時に処理A、そうでない時に処理Bをしたい場合には、以下のように書きます。 このように、if文が終わった後に続けてelseと書き、その後処理したい内容を記述します。

if(条件C) {
    処理A;
} else {
    処理B;
}

例えば、年齢ageが10歳未満なら「10歳未満です。」と表示し、そうでなければ「10歳以上です。」と表示したい場合には、以下のように書きます。 この例では、まず最初に「age < 10」が評価されますがfalseになります。 従って、次のブロックの処理は行われず、else文の処理が行われますので「10歳以上です。」と表示されます。

int age = 15;
if(age < 10) {
    System.out.println("10歳未満です。");
} else {
    System.out.println("10歳以上です。");
}

else if文

else if文は、複数の条件式があるときに使います。 これは「そうではなくて~の時に~」にあたります。

else if文の使い方のフォーマットは以下のような感じです。

if(条件式A) {
  処理A;
} else if(条件式B) {
  処理B;
} else if(条件式C) {
  処理C;
} else {
  処理D;
}

複数の条件式がある場合、上から順に評価がされます。 まず条件式Aを評価してtrueなら処理Aをします。 そうではない場合には、条件式Bを評価してtrueなら処理Bをします。 さらにそうでもない場合には、条件式Cを評価してtrueなら処理Cをします。 条件式がすべてfalseの時には処理Dをします。 ここでは、else ifは2つでしたが、場合によってはそれ以上になることもあります。

例えば、点数scoreが100なら「満点合格です。」、60以上なら「合格です。」、それ以下なら「不合格です」という表示をしたい場合には、以下のように書きます。

int score = 70;
if(score == 100) {
    System.out.println("満点合格です。");
} else if(score >= 60) {
    System.out.println("合格です。");
} else {
    System.out.println("不合格です。");
}

サンプルプログラム

それでは、ここまでを踏まえてサンプルプログラムを作成してみます。 このサンプルプログラムでは、まずenglishとmathに適当な点数を付けます。 それらが合格かどうかを判別しています。

public class If01 {
    public static void main(String[] args) {
        int english = 70;
        int math = 80;
        
        System.out.println("英語: "+english+", 数学: " +math);
        if(english >= 80 && math >= 80) {
            System.out.println("合格A");
        } else if(english >= 60 && math >= 60) {
            System.out.println("合格B");
        } else {
            System.out.println("不合格");
        }
        
        // 点数を変更してみる
        english = 50;
        math = 40;
        
        System.out.println("英語: "+english+", 数学: " +math);
        if(english >= 80 && math >= 80) {
            System.out.println("合格A");
        } else if(english >= 60 && math >= 60) {
            System.out.println("合格B");
        } else {
            System.out.println("不合格");
        }
    }
}

実行結果は以下のようになります。 きちんと条件に合わせて合否がでているのが分かりますね。

英語: 70, 数学: 80
合格B
英語: 50, 数学: 40
不合格

ひとこと

今回の記事では、if,else,else if文を使った条件分岐を扱ってみました。 今までと比べるとちょっと難しいかもしれませんね。 サンプルプログラムを色々と作成して、動作確認をしてみると良いと思います。

次回は、再び条件分岐ですがswitch文について学んでみます。 ぜひ楽しみにしていてくださいね。

関連記事

Java入門 第3回 四則演算(加算・減算・乗算・除算・剰余)Java入門 第5回 switch文を使った条件分岐Java入門 アーカイブ