 する.さもなければ,もし□□ならば
する.さもなければ,もし□□ならば
 する.さもなければ,もし
する.さもなければ,もし
 ならば
ならば
 する.さもなければ,
する.さもなければ,
 する.」というよう構文を書きたい場合がある.条件に合致しなければ,次々と条件を変
化させる.このような構文には,if〜else if〜else文を使う.
 
する.」というよう構文を書きたい場合がある.条件に合致しなければ,次々と条件を変
化させる.このような構文には,if〜else if〜else文を使う.
   1 #include <stdio.h>
   2 
   3 int main(void)
   4 {
   5   double temp;
   6 
   7   printf("今の気温は?\t");
   8   scanf("%lf",&temp);
   9 
  10   if(temp<-30){
  11     printf("極寒です\n");
  12   }else if(-30 <= temp && temp < 10){
  13     printf("寒いです\n");
  14   }else if(10 <= temp && temp < 25){
  15     printf("快適です\n");
  16   }else if(25 <= temp && temp < 35){
  17     printf("暑いです\n");
  18   }else{
  19     printf("猛暑です\n");
  20   }
  21     
  22   return 0;
  23 }
| 書式 
	if(制御式1){
	   文1;
	   文2;
	}else if(制御式2){
	   文3;
	   文4;
	}else if(制御式3){
	   文5;
	   文6;
	}else{
	   文7;
	   文8;
	}
 | 
この構文のフローチャートを,図2に示す.このフローチャートを見てわか るように,最初に真となった制御式に続くブロック内が実行されのみである.それ以降, 真になっても,そのブロックは実行されない.どの制御式も真にならない場合,最後の elseのブロックが実行される.即ち,実行されるブロックは1個のみである. else ifの段数をいくらでも増やせることは,言うまでもない.
また,elseが無い構文も許される.この場合,真となる制御式がない場合,どの ブロックも実行されず,この構文から抜ける.