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 必须是任意 标量类型 的表达式。
如果 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 } |
(since C99) |
注释
else 始终与最近的前一个 if 相关联(换言之,如果 statement-true 同样是一个 if 语句,那么该内部 if 语句也必须包含 else 部分):
如果通过 goto 进入 statement-true ,则不会执行 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语句(页码:133-134)
- C89/C90 标准 (ISO/IEC 9899:1990):
-
- 3.6.4.1 if 语句
参见
|
C++ 文档
关于
if
语句
|