더북(TheBook)

먼저 if 문을 보면 조건에 && 표시가 있죠. &&는 논리 연산자(표 3-1 주요 연산자 참고)의 하나인 AND 연산자입니다. 자세한 내용은 4.2.3 AND와 OR 연산자에서 다루니 여기서는 의미만 알아 두세요. if 문에서 AND 연산자는 ‘조건이 둘 다 참이면 참’이라는 뜻입니다.

코드를 보면 age >= 8 조건과 age <= 13 조건 사이에 &&가 있습니다. 따라서 ‘age가 8보다 크거나 같고 13보다 작거나 같으면 참’을 의미하죠. 그리고 두 조건을 모두 만족하면 printf() 문을 실행해 ‘초등학생입니다.’를 출력합니다. 마찬가지로 else if 문에서도 age가 14보다 크거나 같으면서 16보다 작거나 같으면 ‘중학생입니다.’를 출력합니다.

그런데 else if 문이 하나 더 있습니다. if 문이나 else 문과 달리 else if 문은 여러 번 나올 수 있습니다. 그래서 초등학생, 중학생, 고등학생처럼 조건이 3가지일 때는 else if 문을 두 번 사용하면 됩니다. 조건이 3가지지만, 첫 번째 if 문의 조건을 만족하면 나머지 else if 문을 살펴보지 않고 if 문 전체를 탈출합니다. 또한, if 문의 조건을 만족하지 않고 첫 번째 else if 문의 조건을 만족하면 두 번째 else if 문을 살펴보지 않고 탈출합니다. 조건이 맞을 때까지만 확인하는 것이죠.

실행결과를 보면 age가 9니까 초등학생이라고 나옵니다. 또한, age를 15로 바꾸면 중학생이라고 나오고, 19로 바꾸면 고등학생이라고 나오겠죠. 그럼 25일 때는 어떨까요? 25세는 8~13세도 아니고, 14~16세도 아니고, 17~19세도 아닙니다. 즉, if 문과 else if 문의 조건 어디에도 해당하지 않습니다. 그래서 아무것도 출력하지 않습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.