if (...) ... else ...를 선택문(selection statement)C이라 부른다. 이 문장은 (...) 안에 담긴 값에 따라 두 가지 코드 경로(code path)C 중 하나를 선택한다. 기본 형식은 다음과 같다.
if (조건) 문장0_또는_블록0
else 문장1_또는_블록1
조건 부분에 들어가는 제어 표현식(controlling expression)의 형태는 다양하다. 앞에 나온 코드처럼 간단한 비교부터 굉장히 복잡한 중첩 표현식까지 나올 수 있다. 이 부분에 사용할 수 있는 기본 요소(primitive)에 대해서는 4.3.2절에서 자세히 소개한다.
if문의 조건 부분에 나올 수 있는 형태 중에서 가장 간단한 예는 다음과 같다. 예제 1-1의 for 루프를 약간 변형한 것이다.
for (size_t i = 0; i < 5; ++i) { if (i) { printf("element %zu is %g, \tits square is %g\n", i, A[i], A[i]*A[i]); } }
이 코드에서 printf의 실행 여부를 결정하는 조건으로 달랑 i만 나온다. 즉, 숫값 하나만을 조건으로 사용한다. 이 코드에 따르면 i가 0이 아닐 때만 printf가 실행된다.Exs 1
숫값 하나로 주어진 조건을 평가할 때는 다음과 같이 간단한 두 가지 규칙이 적용된다.
Exs 1 예제 코드에 if (i) 조건을 추가하고 실행해서 출력 결과가 어떻게 달라지는지 비교해 보자.