if 문 (C)

if 문은 조건부 분기를 제어합니다. if 문의 본문은 식의 값이 0이 아닌 경우 실행되지 않습니다. if 문의 구문에는 두 가지 형태가 있습니다.

구문

selection-statement:
if ( expression ) statement

if ( expression ) statement else statement

if 문의 두 형태에서 구조체를 제외한 모든 값을 포함할 수 있는 식과 모든 파생 작업이 계산됩니다.

구문의 첫 번째 형태에서 expression이 true(0이 아님)이면 statement가 실행되고, expression이 false이면 statement가 무시됩니다. else를 사용하는 구문의 두 번째 형태에서 expression이 false인 경우 두 번째 statement가 실행됩니다. 두 형태 모두에서 문 중 하나에 break, continue 또는 goto가 포함되지 않는 한 if 문에서 프로그램의 다음 문으로 제어가 전달됩니다.

if 문의 예는 다음과 같습니다.

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

이 예제에서 y = x/i; 문은 i가 0보다 큰 경우에 실행됩니다. i가 0보다 작거나 같은 경우 ix에 할당되고 f( x )y에 할당됩니다. if 절을 형성하는 문은 세미콜론으로 끝납니다.

if 문과 else 절을 중첩하는 경우, 중괄호를 사용하여 의도를 명확히 나타내는 복합 문으로 문과 절을 그룹화합니다. 중괄호가 없는 경우 컴파일러는 else가 없는 가장 가까운 if와 각 else를 연결하여 모호성을 해결합니다.

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보다 작거나 같으면 ix에 할당됩니다.

참고 항목

if-else 문(C++)