C参考手册
C 语法
if statement
有条件地执行代码。
只有在某些条件成立的情况下才需要执行代码。
句法
if ( expression ) statement_true |
(1) |
|
---|---|---|
if ( expression ) statement_true else statement_false |
(2) |
|
说明
表达式必须是任何标量类型的表达式。
如果表达式比较不等于整数零,则执行 statement_true。
在表格(2)中,如果表达式比较等于整数零,则执行 statement_false。
与所有其他选择和迭代语句一样,整个 if 语句都有自己的块范围:enum {a,b}; int不同(void){if(sizeof(enum {b,a})!= sizeof(int))返回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 // this else is part of if(j>2), not part of if(i>1)
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