if
语句 (C)
if
语句控制条件分支。 如果表达式的值不为零,则执行 if
语句的主体。 if
语句的语法有两种形式。
语法
selection-statement
?
if (
expression
)
statement
if (
expression
)
statement
else
statement
在 if
语句的两种形式中,计算除了结构之外可以有任何值的表达式,包括所有副作用。
在第一种形式的语法中,如果 expression
为 true(非零),则执行 statement
。 如果 expression
为 false,则忽略 statement
。 在使用 else
的第二种语法形式中,如果 expression
为 false,则执行第二个 statement
。 对于这两种形式,控制权随后从 if
语句传递给程序中的下一个语句,除非其中一个语句包含 break
、continue
或 goto
。
下面的几个示例展示了 if
语句:
if ( i > 0 )
y = x / i;
else
{
x = i;
y = f( x );
}
在此示例中,如果 y = x/i;
大于 0,则执行 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
子句与内部 if
语句关联。 如果 i
小于或等于 0,则不会将任何值赋给 x
。
if ( i > 0 )
{ /* With braces */
if ( j > i )
x = j;
}
else
x = i;
此示例中的内部 if
语句两边的大括号让 else
子句成为外部 if
语句的一部分。 如果 i
小于或等于 0,则将 i
赋给 x
。