该 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程序中的下一个语句,除非其中一个语句包含一个break或 continuegoto。
下面是语句的示例 if :
if ( i > 0 )
y = x / i;
else
{
x = i;
y = f( x );
}
在此示例中,如果i大于 0,则执行该语句y = x/i;。 如果 i 小于或等于 0, i 则 x分配给 ,并 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。