LoginSignup
1
0

More than 1 year has passed since last update.

【Java文法】条件分岐

Last updated at Posted at 2022-01-09

こんにちは、コイキングです。

本記事では'条件分岐'について、説明したいと思います。


1. 条件分岐とは?

条件分岐は条件式を用いて、コードを実行するかどうか制御する構文で、
条件式の結果が真の場合構文内のコードが実行される形でコードの実行を制御します。
Javaで条件分岐の構文はif文、switch文、算術演算子があります。

2. if文

if文は条件式の結果が真であればif文の構文内のコードが実行され、プログラムのフローを制御する構文です。
else、else-ifキーワードを使ったり、省略することで多種多様にコード実行を制御できます。

1) if文単体で使う

※ 条件式の結果が真の場合、if文内部のコードが実行されます。

int a = 10;
int b = 20;
int c = 10;

if (a < b) {
    System.out.println(a +" より "+ b +"が大きい");
}

※ 条件式の結果が偽の場合、if文内部のコードは実行されないです。

if (a < c) {
    System.out.println(a +" より"+ c +"が大きい");
}

※ AND・OR演算子を使い、複数の条件比較ができる

if (a < b && a == c) {
    System.out.println(a +" より"+ c +"が大きい, " + a +"と "+ c +"は同じだ");
}

2) if - else

if文の条件式の結果が真の場合、if文内部のコードが実行され、条件式の結果が偽の場合else文内部のコードが実行されます。

if (a < c) {
    System.out.println(a +" より"+ c +"が大きい");

} else {
    System.out.println("条件不一致!!");

}

3) if - else if

if文の条件式の結果が真の場合、if文内部のコードが実行され、if文の条件の結果が偽の場合、
else if文の条件式を確認します。
else if文の条件式の結果が真の場合、else if文内部のコードが実行され、else if文の結果が偽の場合、if-else if構文のコードは何も実行されません。

※ else if文の数は制限がありません。

if (a < c) {
    System.out.println(a +" より"+ c +"が大きい");

} else if (a < b && a == c) { 
    System.out.println(a +" より"+ c +"が大きい, " + a +"と "+ c +"は同じ");

} else if (a < b) {
    System.out.println(a +" より"+ b +"が大きい");

}

4) if - else if - else

if文の条件式の結果が真の場合、if文内部のコードが実行され、if文の条件の結果が偽の場合、
else if文の条件式を確認します。
else if文の条件式の結果が真の場合、else if文内部のコードが実行され、else if文の結果が偽の場合、else文内部のコードが実行されます。

if (a < c) {
    System.out.println(a +" より"+ c +"が大きい");

} else if (a < b && a == c) { 
    System.out.println(a +" より"+ c +"が大きい, " + a +"と "+ c +"は同じ");

} else if (a < b) {
    System.out.println(a +" より"+ b +"が大きい");

} else {
    System.out.println("条件不一致!!");

}

3. switch文

switch文はキーの値と一致するケース文のコードを実行する方式でプログラムのフローを制御する構文です。
複数の条件分岐が必要な場合使うとif文よりコードが見やすくなると私は思います。

int key = 2;

switch (key) {
case 1 :
    System.out.println("Keyは 1 です。");
    break;
case 2 :
    System.out.println("Keyは 2 です。");
    break;
case 3 :
    System.out.println("Keyは 3 です。");
    break;
default:
    System.out.println("条件不一致!!");
    break;
}

// # 実行結果
// Keyは 2 です。

※ break文を使わない場合条件が一致したcaseからbreakを会うまで全てのcaseが実行されます!

switch (key) {
case 1 :
    System.out.println("Keyは 1 です。");
case 2 :
    System.out.println("Keyは 2 です。");
case 3 :
    System.out.println("Keyは 3 です。");
    break;
default:
    System.out.println("条件不一致!!");
}

// # 実行結果
// Keyは 2 です。
// Keyは 3 です。

4. 三項演算子

三項演算子はif文を単体で使う場合に代わりに使うと、コードを見やすく作成できる長所がある条件分岐構文です。

※ 基本的な使い方

int su1 = 100;
int su2 = 200;

// [データ型] [結果値を入れる変数] = (条件式) ? [条件式が真の場合の結果値] : [条件式が偽の場合の結果値];  
int resultInt = su1 < su2 ? su1 : su2 ;
System.out.println(resultInt);  // 100

※ 括弧で条件を囲むことができる、リターン可能なデータタイプはプリミティブ型・参照型どちらもできます。

String resultStr = (su1 < su2) ? su2+"の方がより大きい" : su1+"の方がより大きい" ;
System.out.println(resultStr);  // 200の方がより大きい

※ 結果値として戻り値があるメソッドをセットすることもできす。

int resultInt2 = (su1 < su2) ? beTwice(su2) : beTwice(su1);
System.out.println(resultInt2);

public static int beTwice(int su) {
    return su * 2;
}

※ 例示コード
https://github.com/leeyoungseung/algorithmBasic/blob/master/algorithm/src/basic/B_05_Conditions.java

※ 韓国語のポストは以下のURLで確認できます。
https://koiking.tistory.com/77?category=1068655

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0