조건문 (if, else if, else)
조건문 개요
조건문은 프로그램의 흐름을 제어하는 핵심적인 구조입니다. 특정 조건에 따라 다른 코드를 실행하고 싶을 때 사용합니다.
C++에서는 if
, else if
, else
키워드를 사용하여 조건문을 구성합니다.
if 문
기본 구조
조건은 불리언 표현식이어야 합니다. 즉, 결과가 true 또는 false여야 합니다.
이 예제에서 number > 0
은 true이므로, "Number is positive."가 출력됩니다.
if-else 문
기본 구조
이 예제에서 number >= 0
은 false이므로, "Number is negative."가 출력됩니다.
if-else if-else 문
기본 구조
여러 개의 조건을 순차적으로 검사할 때 사용합니다.
이 예제에서는 점수에 따라 학점을 출력합니다. 85점이므로 "Grade: B"가 출력됩니다.
중첩된 if 문
조건문 안에 다른 조건문을 넣을 수 있습니다.
이 예제에서는 "Both x and y are positive."가 출력됩니다.
조건식
비교 연산자
==
(같다)!=
(같지 않다)<
(작다)>
(크다)<=
(작거나 같다)>=
(크거나 같다)
논리 연산자
&&
(AND) : 두 조건이 모두 참일 때 참||
(OR) : 두 조건 중 하나라도 참이면 참!
(NOT) : 조건의 결과를 반전
이 예제에서는 나이가 18세 이상이고 운전면허가 있으므로 "You can drive."가 출력됩니다.
주의사항
1. 블록 사용 : 조건문 뒤에 오는 코드 블록이 한 줄이라도 중괄호를 사용하는 것이 좋습니다. 이는 가독성을 높이고 오류를 방지합니다.
2. else if vs 중첩된 if : else if
를 사용하면 코드의 가독성이 향상되고, 조건 검사의 효율성이 높아집니다.
3. 조건식의 평가 순서 : &&
와 ||
연산자는 단락 평가(short-circuit evaluation)를 수행합니다. 이를 이용하여 효율적인 코드를 작성할 수 있습니다.
4. 부동소수점 비교 : 부동소수점 숫자를 직접 비교할 때는 주의가 필요합니다. 작은 오차로 인해 예상치 못한 결과가 나올 수 있습니다.
연습 문제
- 사용자로부터 정수를 입력받아 양수, 음수, 0인지 판별하는 프로그램을 작성하세요.
- 윤년을 판별하는 프로그램을 작성하세요. (윤년 : 4로 나누어 떨어지고, 100으로 나누어 떨어지지 않거나 400으로 나누어 떨어지는 해)
- 세 개의 정수를 입력받아 가장 큰 수를 출력하는 프로그램을 작성하세요.
- 간단한 계산기 프로그램을 작성하세요. 두 수와 연산자
+
,-
,*
,/
를 입력받아 결과를 출력하세요. - 학생의 점수를 입력받아 학점(A, B, C, D, F)을 출력하는 프로그램을 작성하세요.
- A : 90-100
- B : 80-89
- C : 70-79
- D : 60-69
- F : 0-59
참고자료
- C++ 공식 문서의 조건문 섹션 : C++ if statements
- C++ 17의
if
문 초기화 구문 : If statement with initializer - C++ Core Guidelines의 조건문 관련 규칙 : ES.78 : Always initialize an object
- Effective C++ : 항목 3 "가능한 한 항상 const를 사용하라" - Scott Meyers