if 语句 (C)

if 语句控制条件分支。 如果表达式的值为非零,则执行语句的正文 if 。 语句的 if 语法有两种形式。

语法

selection-statement:
if ( expression ) statement
if ( expression ) statement else statement

在这两种 if 形式的语句中,计算除结构以外的任何值的表达式,包括所有副作用。

在语法的第一种形式中,如果 expression 为 true(非零), statement 则执行。 如果 expression 为 false, statement 则忽略。 在使用else的第二种语法形式中,如果为 false,则执行expression第二statement种语法。 使用这两种形式时,控件将从语句传递到if程序中的下一个语句,除非其中一个语句包含一个breakcontinuegoto

下面是语句的示例 if

if ( i > 0 )
    y = x / i;
else
{
    x = i;
    y = f( x );
}

在此示例中,如果i大于 0,则执行该语句y = x/i;。 如果 i 小于或等于 0, ix分配给 ,并 f( x ) 分配给 y。 构成子句的 if 语句以分号结尾。

嵌套 if 语句和 else 子句时,使用大括号将语句和子句分组到阐明意图的复合语句中。 如果没有大括号,编译器通过将每个else括号与缺少else的最接近if项相关联来解决歧义。

if ( i > 0 )           /* Without braces */
    if ( j > i )
        x = j;
    else
        x = i;

else 子句与此示例中的 inner if 语句相关联。 如果 i 小于或等于 0,则不分配 x任何值。

if ( i > 0 )
{                      /* With braces */
    if ( j > i )
        x = j;
}
else
    x = i;

本示例中内部 if 语句周围的大括号使 else 外部 if 语句的子句部分。 如果 i 小于或等于 0, i 则分配给 x

另请参阅

if-else 语句 (C++)