次の方法で共有


if ステートメント (C)

If ステートメントは、条件分岐を制御します。 if ステートメントの本体は、式の値が 0 でないの場合に実行されます。 if ステートメントの構文には 2 とおりの形式があります。

構文

  • selection-statement:
    if ( expression ) statement

    if ( ) ステートメント else ステートメント

If ステートメントの両方の形式で、構造体以外のすべての値を持つことができる式が、すべての副作用を含めて評価されます。

最初の構文では、expression が true (0 以外) の場合、statement が実行されます。 式が false の場合、ステートメントは無視されます。 else を使用する 2 番目の構文形式では、expression が false の場合、2 番目の statement が実行されます。 どちらの形式でも、いずれかのステートメントに breakcontinue、または goto が含まれていない場合は、制御が if ステートメントからプログラムの次のステートメントに移ります。

if ステートメントの例を次に示します。

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

この例では、ステートメント本体 y = x/i; は、i が 0 を超える場合に実行されます。 i が 0 以下の場合、i が x に割り当てられ、f( x ) が y に割り当てられます。 if 句を形成するステートメントはセミコロンで終わることに注意してください。

if ステートメントと else 句を入れ子にする場合は、意図がはっきりわかるように、中かっこを使用してステートメントと句を複合ステートメントにグループ化します。 中かっこがない場合、コンパイラは各 elseelse のない最も近い If と関連付けることで、あいまいさを解消します。

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

else 句は、この例の内側の If ステートメントに関連付けられます。 x が 0 以下の場合、i に値は割り当てられません。

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

この例の内側の if ステートメントを囲んでいる中かっこにより、else 句は外側の if ステートメントの一部になります。 i が 0 以下の場合、i が x に割り当てられます。

参照

関連項目

if-else ステートメント (C++)