💨

[Java]条件分岐について

2023/09/28に公開

if else文

条件式の結果はboolean値(true、false)で返ってきて、trueの時の処理とfalseの時の処理をif文内の処理が実行されます。
書き方は下記のようになります。

if( 条件式 ) { 
  処理1
} else {
  処理2
};

処理1は条件式がtrueの時に実行され、処理2は条件式がfalseの時に実行されます。
たとえば天気に対してtrue,falseを定義すると

public class Lesson1 {
  public static void main(String[] args) {
    boolean tenki = true;
    if (tenki == true) {
      System.out.println("洗濯をします");
      System.out.println("散歩にいきます");
    } else {
      System.out.println("DVDを見ます");
    }
  }
}
実行結果
洗濯をします
散歩にいきます

else if文

条件式を1つ以上使うためには、else if文を用いる事で複数の条件式を使うことが出来ます。

if( 条件式1 ) { 
  処理1
} else if ( 条件式2 ) {
  処理2
} else {
  処理3
};

処理1は条件式1がtrueの時に実行され、処理2は条件式2がtrueの時に実行され、処理3は1つ目と2つ目の条件式がfalseの時に実行されます。

else if文は上から順に条件式が評価され、ある条件がtrueであった場合にそのブロック内の処理文のみを実行します。

占い結果を条件分岐で表示したい時には下記のようになります。

public class Lesson4{
  public static void main(String[] args) {
    System.out.println("あなたの運勢を占います");
    int fortune = new java.util.Random().nextInt(4) + 1;
    if (fortune == 1){
      System.out.println("大吉");
    } else if (fortune == 2) {
      System.out.println("中吉");
    } else if (fortune == 3) {
      System.out.println("吉");
    } else if (fortune == 4) {
      System.out.println("凶");
    } 
  }
}
実行結果
あなたの運勢を占います
中吉

ランダムに作成される1~4の数字に占い結果を代入して、それに応じた結果を表示させています。

文字列の比較

Javaでは条件式の中でString型の変数や文字列を比較する場合、特別な書き方をします。
たとえば「変数strの中が"夕日"だった場合」

if (str == "夕日") {
:
}

これでもコンパイルエラーは発生しないのですが時々変な動作をするので、下記のように変更します。

if (str.equals("夕日") {
:
{

正しくはこのように記述します。
忘れがちな内容ですし==でもエラーが発生しないので暗記するつもりでもいいかもしれないです。

switch文

式の評価結果と定数を比較して、一致した場合に処理が実行される。という多分岐処理を行うための方法です。

switch ( 式 ) {
  case 定数1:
    処理1;
    break;
  case 定数2:
    処理2;
    break;
  default:
    処理3;
}

式の結果が定数1と一致していれば処理1が実行され、定数2と一致していれば処理2が実行されます。
一致するものがない場合、default以下の処理が実行されます。(defaultの記述は任意です)

public class Lesson5 {
  public static void main(String[] args) {
    System.out.println("あなたの運勢を占います");
    int fortune = 1;
    switch (fortune) {
      case 1:
        System.out.println("大吉");
        break;
      case 2:
        System.out.println("中吉");
        break;
      case 3:
        System.out.println("吉");
        break;
      default:
        System.out.println("凶");
    }
  }
}
実行結果
あなたの運勢を占います
大吉

breakeの書き忘れはおきやすいので注意が必要です。

まとめ

条件分岐の基本的な内容をまとめました!
それぞれに気を付ける内容があるので、一気に覚えるのは難しいので逐次確認が必要そうです。

Discussion