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)
    {
        printf("test1\n");        // 条件式が真(式が0以外)となるため実行される
    }

    if (a == c)
    {
        printf("test2\n");        // 条件式が偽(式が0)となるため実行されない
    }
    else
    {
        printf("test3\n");        // 条件式が偽(式が0)となるため実行される
    }

    if (a == c)
    {
        printf("test4\n");        // 条件式が偽(式が0)となるため実行されない
    }
    else if (a == b)
    {
        printf("test5\n");        // 条件式が真(式が0以外)となるため実行される
    }

    if (a == c)
    {
        printf("test6\n");        // 条件式が偽(式が0)となるため実行されない
    }
    else if (a != b)
    {
        printf("test7\n");        // 条件式が偽(式が0)となるため実行されない
    }
    else
    {
        printf("test8\n");        // すべての条件式が偽(式が0)となるため実行される
    }
    
    return 0;
}

実行結果
test1
test3
test5
test8


Copyright(C) 2006-2012 CLAYPOT. All Rights Reserved.