Loose-Info.com
Last Update 2012/07/05
TOP - C言語 - if

if文は次の書式となります。
下記の文法リストにある[ブロック]部分は[1行の文]でも問題ありません。

if (  条件式1  )  ブロック1 

ブロック1 :
条件式1を評価した結果が真(式が0以外)の場合に実行されるブロック


if (  条件式1  )  ブロック1  else  ブロック2 

ブロック1 :
条件式1を評価した結果が真(式が0以外)の場合に実行されるブロック
ブロック2 :
条件式1を評価した結果が偽(式が0)の場合に実行されるブロック


if (  条件式1  )  ブロック1  else if (  条件式2  )  ブロック2 

ブロック1 :
条件式1を評価した結果が真(式が0以外)の場合に実行されるブロック
ブロック2 :
条件式2を評価した結果が真(式が0以外)の場合に実行されるブロック
続けて条件式3、ブロック3以降の配置も可能


if (  条件式1  )  ブロック1  else if (  条件式2  )  ブロック2  ... else  ブロック3 

ブロック1 :
条件式1を評価した結果が真(式が0以外)の場合に実行されるブロック
ブロック2 :
条件式2を評価した結果が真(式が0以外)の場合に実行されるブロック
続けて条件式n、ブロックn以降の配置も可能
ブロック3 :
どの条件式ついても真(式が0以外)とならなかった場合に実行されるブロック

(例)
#include <stdio.h> int main () { int a = 2; int b = 2; int c = 3; if (a == b) {i /* 条件式が真(式が0以外)となるため実行される */ printf("test1\n"); } if (a == c) { /* 条件式が偽(式が0)となるため実行されない */ printf("test2\n"); } else { /* 条件式が偽(式が0)となるため実行される */ printf("test3\n"); } if (a == c) { /* 条件式が偽(式が0)となるため実行されない */ printf("test4\n"); } else if (a == b) { /* 条件式が真(式が0以外)となるため実行される */ printf("test5\n"); } if (a == c) { /* 条件式が偽(式が0)となるため実行されない */ printf("test6\n"); } else if (a != b) { /* 条件式が偽(式が0)となるため実行されない */ printf("test7\n"); } else { /* すべての条件式が偽(式が0)となるため実行される */ printf("test8\n"); } return 0; }

実行結果
test1 test3 test5 test8