C
C 语法

if statement

if 声明

有条件地执行代码。

只有在某些条件成立的情况下才需要执行代码。

句法

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):