티스토리 뷰
위는 정수형 변수 i에 3이라는 숫자를 할당한 후, 조건문을 만족하는 구간에서 출력되게끔 하는 코드이다.
if (i<0) 즉, 만약 i가 0보다 작을 때에는
"음수입니다."가 출력되고,
if (i==0)즉, 만약 i가 0일 때에는
"0입니다."가 출력되며,
else 즉, i가 0보다 작지도 않고 0도 아닐 때에는
"양수입니다"가 출력된다.
i는 양수 3이므로, 해당 조건문 실행 시 "양수입니다."가 출력됨을 알 수 있다.
조건문은 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문으로서,
조건문 중에서도 가장 기본이 되는 명령문은 바로 if 문이다.
C++에서 사용하는 대표적인 조건문의 형태는 다음과 같다.
1. if 문
2. if / else 문
3. if / else if / else 문
4. switch 문
if 문
if 문은 조건식의 결과가 참(true)이면 주어진 명령문을 실행하며, 거짓(false)이면 실행하지 않는다.
C++에서 if 문의 문법은 다음과 같다.
-----------------------------------------------------------
if (조건식)
{
조건식의 결과가 참일 때 실행하고자 하는 명령문;
}
-----------------------------------------------------------
if / else 문
if 문과 함께 사용하는 else 문은 if 문과는 반대로 주어진 조건식의 결과가 거짓(false)이면 주어진 명령문을 실행한다.
C++에서 if / else 문의 문법은 다음과 같다.
-----------------------------------------------------------
if (조건식)
{
조건식의 결과가 참일 때 실행하고자 하는 명령문;
}
else
{
조건식의 결과가 거짓일 때 실행하고자 하는 명령문;
}
-----------------------------------------------------------
if / else if / else 문
if / else if / else 문은 마치 새로운 구문처럼 보이지만, 사실은 두 개의 if / else 문이 연달아 나온 것뿐이다.
이러한 if / else if / else 문은 조건식을 여러 개 명시할 수 있으므로 중첩된 if 문을 좀 더 간결하게 표현할 수 있다.
C++에서 if / else if / else 문의 문법은 다음과 같다.
-----------------------------------------------------------
if (조건식1)
{
조건식1의 결과가 참일 때 실행하고자 하는 명령문;
}
else if (조건식2)
{
조건식2의 결과가 참일 때 실행하고자 하는 명령문;
}
else
{
조건식1의 결과도 거짓이고, 조건식2의 결과도 거짓일 때 실행하고자 하는 명령문;
}
-----------------------------------------------------------
이때 else if 문은 여러 번 나와도 상관없지만, if 문과 else 문은 단 한 번만 나올 수 있다.
삼항 연산자에 의한 조건문
C++에서는 if / else 문을 삼항 연산자를 이용하여 간단히 표현할 수 있다.
-----------------------------------------------------------
조건식 ? 반환값1 : 반환값2
-----------------------------------------------------------
switch 문
switch 문은 if / else 문과 마찬가지로 주어진 조건에 따라 프로그램이 다른 명령을 수행하도록 하는 조건문이다.
이러한 switch 문은 if / else 문보다 가독성이 더 좋으며, 컴파일러가 최적화를 쉽게 할 수 있어 속도 또한 빠른 편이다.
하지만 switch 문의 조건 값으로는 int형으로 승격할 수 있는(integer promotion) 값만이 사용될 수 있다.
즉, C++에서는 char형, short형, int형 변수나 리터럴과 나중에 열거체까지 사용할 수 있다.
따라서 if / else 문보다는 사용할 수 있는 상황이 적은 편이다.
C++에서 switch 문의 문법은 다음과 같다.
-----------------------------------------------------------
switch (조건 값)
{
case 값1:
조건 값이 값1일 때 실행하고자 하는 명령문;
break;
case 값2:
조건 값이 값2일 때 실행하고자 하는 명령문;
break;
...
default:
조건 값이 어떠한 case 절에도 해당하지 않을 때 실행하고자 하는 명령문;
break;
}
-----------------------------------------------------------
default 절은 조건 값이 위에 나열된 어떠한 case 절에도 해당하지 않을 때만 실행된다.
이 절은 반드시 존재해야 하는 것은 아니며 필요할 때만 선언할 수 있다.
-----------------------------------------------------------
switch (num)
{
case 1:
cout << "입력하신 수는 1입니다." << endl;
break;
case 2:
cout << "입력하신 수는 2입니다." << endl;
break;
case 3:
cout << "입력하신 수는 3입니다." << endl;
break;
case 4:
cout << "입력하신 수는 4입니다." << endl;
break;
case 5:
cout << "입력하신 수는 5입니다." << endl;
break;
default:
cout << "1부터 5까지의 수만 입력해 주세요!" << endl;
break;
}
-----------------------------------------------------------
각 case 절 및 default 절은 반드시 break 키워드를 포함하고 있어야 한다.
break 키워드는 조건 값에 해당하는 case 절이나 default 절이 실행된 뒤에 전체 switch 문을 빠져나가게 해준다.
만약에 break 키워드가 없다면, 조건에 해당하는 switch 문의 case 절 이후의 모든 case 절이 전부 실행될 것
다음 예제는 조건 값으로 여러 개의 char형 문자를 검사하는 예제임
이렇게 switch 문의 조건으로 여러 개의 case 절을 사용하여 여러 개의 조건을 한 번에 검사할 수 있다.
-----------------------------------------------------------
switch (ch)
{
case 'a':
case 'A':
cout << "이 학생의 학점은 A입니다." << endl;
break;
case 'b':
case 'B':
cout << "이 학생의 학점은 B입니다." << endl;
break;
case 'c':
case 'C':
cout << "이 학생의 학점은 C입니다." << endl;
break;
case 'd':
case 'D':
cout << "이 학생의 학점은 D입니다." << endl;
break;
case 'f':
case 'F':
cout << "이 학생의 학점은 F입니다." << endl;
break;
default:
cout << "학점을 정확히 입력해 주세요!(A, B, C, D, F)" << endl;
break;
}
-----------------------------------------------------------
'C++' 카테고리의 다른 글
5강. 함수 (0) | 2024.09.18 |
---|---|
4강. 반복문 (0) | 2024.09.18 |
2강. 변수 (0) | 2024.09.18 |
1강. C++ 실습 환경 구축 (0) | 2024.09.18 |