if ステートメントは、条件分岐を制御します。 式の値が 0 以外の場合、 if ステートメントの本体が実行されます。
if ステートメントの構文には、2 つの形式があります。
構文
selection-statement:
if (
expression
)
statement
if (
expression
)
statement
else
statement
if ステートメントの両方の形式で、構造体を除く任意の値を持つ式が、すべての副作用を含めて評価されます。
構文の最初の形式では、 expression が true (0 以外) の場合、 statement が実行されます。
expressionが false の場合、statementは無視されます。
elseを使用する 2 番目の形式の構文では、expressionが false の場合、2 番目のstatementが実行されます。 どちらの形式でも、 if ステートメントからプログラム内の次のステートメントに制御が渡されます。ただし、いずれかのステートメントに break、 continue、または gotoが含まれている場合を除きます。
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句を形成するステートメントはセミコロンで終わります。
ステートメントとelse句if入れ子にする場合は、中かっこを使用してステートメントと句を複合ステートメントにグループ化し、意図を明確にします。 中かっこが存在しない場合、コンパイラは、各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 ステートメントを囲む中かっこは、外側の if ステートメントの一部else句にします。
iが 0 以下の場合、iは x に割り当てられます。