分享方式:


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。 在這兩種形式中,除非其中一個陳述式包含 breakcontinuegoto,否則控制權會從 if 陳述式傳至程式中的下一個陳述式。

以下是 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

另請參閱

if-else 陳述式 (C++)