©
This document uses PHP Chinese website manual Release
有条件地执行代码。
只有在某些条件成立的情况下才需要执行代码。
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 falsei == 3i != 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