C言語

条件文(if~else if~else文)

条件文(if~else文)」では、条件が成立した場合(真の場合)と、条件が不成立した場合(偽の場合)に処理を分けることができました。
ただ、これでは、2パターンの分岐しか行えません。
そこで、より多くの条件を判断して、それぞれ異なる処理を行いたい場合に用いるのが、if~else if~else文です。
例えば、テストの点数が90点以上の場合の処理、90点未満だが80点以上の場合、80点未満だが70点以上の場合、その他の場合、といったように、複数の条件に応じて処理を分けることができます。

if~else if~else文の仕組み

if~else if~else文の構文は、次の通りです。

if( 条件1 ) {
  文1;
}
else if ( 条件2 ) {
  文2;
}
else {
  文3;
}

この構文では、条件1が成立した場合は、文1の処理を行い、文2文3の処理は行いません。
また、その時点で条件2の判定も行われません。

条件1が不成立した場合は、条件2の判定を行います。
条件2が成立した場合、文2の処理を行い、文3の処理は行いません。

条件1も条件2も不成立した場合は、else文の中の文3の処理が行われます。

このように、if~else if~else文を使うと、複数の条件に応じて処理を分けることができます。

次のソースコードを記述して、いろんな整数値を入力して試してみてください。
入力した点数に応じて、3種類のメッセージが出力されることを確認できます。

#include <stdio.h>

int main(void)
{
  int score;
  
  printf("テストの点を入力してください。\n");
  scanf("%d", &score);
  
  if( score > 90 ) {
   printf("たいへんよくできました!\n");      
  }
  else if( score >80 ) {
    printf("よくできました!\n");    
  }
  else {
    printf("がんばりましょう!\n");
  }

  return 0;
}

このプログラムでは、ifelse ifelse の順に条件を判定し、
最初に当てはまった条件のメッセージだけが表示されます。
実際にいくつかの値(たとえば 95、85、60 など)を入力して、結果の違いを確かめてみましょう。

まとめ

  • if~else if~else文を用いることで、より多くの条件を判断して、それぞれ異なる処理を行うことができる。

-C言語