if语句

来自cppreference.com
< c‎ | language

条件性执行代码。

用于仅当某条件为真时执行代码的场合。

目录

[编辑] 语法

if ( expression ) statement_true (1)
if ( expression ) statement_true else statement_false (2)

[编辑] 解释

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; // 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 // 此else是if(j>2)的一部分,不是if(i>1)的部分 
       printf("%d > 1 and %d <= 2\n", i, j);

若通过goto进入statement_true,则不执行statement_false

[编辑] 关键词

ifelse

[编辑] 示例

#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

[编辑] 参阅

if语句C++文档