Javaの条件分岐~if-else if-else文~

Java Silver

3種類のif文

Javaのif文には以下の3つがあります。

  • if文 (イフ)
  • ifelse文 (イフ エルス)
  • ifelse ifelse文 (イフ エルスイフ エルス)

今回は「if-else if-else文」について取り上げます。

if-else if-else文

if-else if-else文は、複数の条件を一度に記述できる構文です。

if ( num <= 10 ) {
  //条件に合致した場合の処理
} else if ( num > 11 ) {
  //条件に合致した場合の処理
} else {
  //上記以外の場合の処理
}

上記のif-else if-else文では変数numが10以下の場合と、変数numが11より大きい場合それ以外の場合の処理について記述できます。

if-else if-else文でも、if文と同様に「{}」を省略して記述することができます。

if ( num <= 10 )
  //条件に合致した場合の処理
else if ( num > 11 )
  //条件に合致した場合の処理
else
  //上記以外の場合の処理

また、if文と同様、「{}」を省略した場合、if文、else if文、else文の次の1行のみが実行されます。

例えば以下のコードを実行すると

int num = 12;

if ( num <= 10 )
  System.out.println("AAA");
else if ( num > 11 )
  System.out.println("BBB");
else
  System.out.println("CCC");
  System.out.println("DDD");

出力結果は以下の通りになります。

BBB
DDD

上記のコードは以下コードと同じです。

int num = 12;

if ( num <= 10 ){
  System.out.println("AAA");
} else if ( num > 11 ) {
  System.out.println("BBB");
} else {
  System.out.println("CCC");
}
System.out.println("DDD");

また、以下のコードはコンパイルエラーになります。

int num = 12;
if ( num <= 10 )
  System.out.println("AAA");
  System.out.println("DDD");
else if ( num > 11 )
  System.out.println("BBB");
else
  System.out.println("CCC");
int num = 12;
if ( num <= 10 )
  System.out.println("AAA");
else if ( num > 11 )
  System.out.println("BBB");
  System.out.println("DDD");
else
  System.out.println("CCC");

「{}」を省略した場合、条件分岐の対象となる処理は、if文、else if文、else文それぞれの次の1行のみとなります。

1つ目のコードではif文の下に2行の処理が記載されていますが、この時点でif-else if-else文の構文ではなくなり、else文を認識できずにコンパイルエラーになります。2つ目のコードでも同様の理由でコンパイルエラーが発生します。

if文、if-else文と同様、「{}」の省略は推奨されていませんが、省略する場合は、構文として成立するかにも注意が必要です。

コメント

タイトルとURLをコピーしました