이 문은 if 조건부 분기를 제어합니다. 식의 if 값이 0이 아닌 경우 문의 본문이 실행됩니다. 문의 구문에는 두 가지 형식이 if 있습니다.
문법
selection-statement:
if (
expression
)
statement
if (
expression
)
statement
else
statement
명령문의 if 두 형태에서 구조체를 제외한 모든 값을 가질 수 있는 식은 모든 부작용을 포함하여 평가됩니다.
구문의 첫 번째 형식에서 true(0이 아닌 경우 expression ) statement 가 실행됩니다. false statement 이면 expression 무시됩니다. 사용하는 else두 번째 구문 형식에서는 false이면 expression 두 번째 statement 구문이 실행됩니다. 두 폼을 모두 사용하는 경우 컨트롤은 문 중 하나에 다음 명령문이 goto포함되어 있지 않으면 해당 명령문에서 if 프로그램의 다음 문으로 breakcontinue전달됩니다.
다음은 문의 예입니다 if .
if ( i > 0 )
y = x / i;
else
{
x = i;
y = f( x );
}
이 예제에서는 문이 y = x/i; 0보다 큰 경우 i 실행됩니다. 0보다 작거나 같으면 i 할당되고 x할당 f( x ) 됩니다y. i 절을 if 형성하는 문은 세미콜론으로 끝납니다.
문 및 else 절을 중첩할 if 때 중괄호를 사용하여 문과 절을 의도를 명확히 하는 복합 문으로 그룹화합니다. 중괄호가 없으면 컴파일러는 각각 else 이 부족한 가장 if 가까운 항목과 연결하여 모호성을 해결합니다 else.
if ( i > 0 ) /* Without braces */
if ( j > i )
x = j;
else
x = i;
절은 이 else 예제의 내부 if 문과 연결됩니다. 0보다 작거나 같으면 i 값이 할당되지 x않습니다.
if ( i > 0 )
{ /* With braces */
if ( j > i )
x = j;
}
else
x = i;
이 예제의 내부 if 문을 둘러싼 중괄호는 절을 else 외부 if 문의 일부로 만듭니다. 0 i 보다 작거나 같은 경우 i 에 할당됩니다x.