if 文
提供: cppreference.com
コードを条件付きで実行します。
何らかの条件が真の場合にのみコードを実行する必要のある場所で使用されます。
構文
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 は実行されません。
キーワード
例
Run this code
#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
関連項目
if 文 の C++リファレンス
|