if statement
条件付きでコードを実行します。
条件が真の場合にのみコードを実行する必要がある場合に使用されます。
目次 |
構文
attr-spec-seq
(オプション)
if (
expression
)
statement-true
|
(1) | ||||||||
attr-spec-seq
(オプション)
if (
expression
)
statement-true
else
statement-false
|
(2) | ||||||||
| attr-spec-seq | - | (C23) 任意の 属性 のリスト(オプション)。 if 文に適用される |
| expression | - | 任意のスカラー型の 式 |
| statement-true | - | 任意の 文 (多くの場合複合文)。 expression が 0 と等しくない場合に実行される |
| statement-false | - | 任意の 文 (多くの場合複合文)。 expression が 0 と等しい場合に実行される |
説明
expression は任意の scalar type の式でなければなりません。
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; // b == 0 in C89, b == 1 in C99 } |
(C99以降) |
注記
else は常に最も近い前方の if と関連付けられます(言い換えれば、 statement-true も if 文である場合、その内側の if 文も同様に else 部分を含む必要があります):
statement-true が goto を通じて入力された場合、 statement-false は実行されません。
キーワード
例
出力:
i > 2 is false i == 3 i != 3 is false
参考文献
- C23規格 (ISO/IEC 9899:2024):
-
- 6.8.5.2 if文 (p: 154)
- C17規格 (ISO/IEC 9899:2018):
-
- 6.8.4.1 if文 (p: 108-109)
- C11規格 (ISO/IEC 9899:2011):
-
- 6.8.4.1 if文 (p: 148-149)
- C99規格 (ISO/IEC 9899:1999):
-
- 6.8.4.1 if文 (p: 133-134)
- C89/C90標準 (ISO/IEC 9899:1990):
-
- 3.6.4.1 if文
関連項目
|
C++ ドキュメント
for
if
ステートメント
|
タグ内の"if"キーワードはそのまま保持し、必要なテキスト部分のみ日本語に翻訳しました。