名前空間
変種
操作

if 文

提供: cppreference.com
< c‎ | language

コードを条件付きで実行します。

何らかの条件が真の場合にのみコードを実行する必要のある場所で使用されます。

目次

[編集] 構文

if ( expression ) statement_true (1)
if ( expression ) statement_true else statement_false (2)

[編集] 説明

expression は何らかのスカラー型の式でなければなりません。

expression が整数のゼロと比較して等しくない場合、 statement_true が実行されます。

形式 (2) で、 expression が整数のゼロと比較して等しい場合、 statement_false が実行されます。

他のすべての選択文および繰り返し文と同様に、 if 文全体が独自のブロックスコープを持ちます。

enum {a, b};
int different(void)
{
    if (sizeof(enum {b, a}) != sizeof(int))
        return a; // a == 1
    return b; // C89 では b == 0、 C99 では b == 1
}
(C99以上)

[編集] ノート

else は最も近い先行する if に紐付けられます (別の言い方をすると、 statement_true もまた if 文であるなら、その内側の if 文も同様に else 節を持たなければなりません)。

int j = 1;
if (i > 1)
    if(j > 2)
        printf("%d > 1 and %d > 2\n", i, j);
    else // この else は if(i>1) の一部ではなく if(j>2) の一部です。
        printf("%d > 1 and %d <= 2\n", i, j);

goto によって statement_true に入った場合、 statement_false は実行されません。

[編集] キーワード

if, else

[編集]

#include <stdio.h>
 
int main(void)
{
    int i = 2;
    if (i > 2) {
        printf("first is true\n");
    } else {
        printf("first is false\n");
    }
 
    i = 3;
    if (i == 3) printf("i == 3\n");
 
    if (i != 3) printf("i != 3 is true\n");
    else        printf("i != 3 is false\n");
}

出力:

first is false
i == 3
i != 3 is false

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 6.8.4.1 The if statement (p: 148-149)
  • C99 standard (ISO/IEC 9899:1999):
  • 6.8.4.1 The if statement (p: 133-134)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 3.6.4.1 The if statement

[編集] 関連項目