1. 조건문이란
C++ 프로그램은 main 함수 시작부터 끝까지 순차적으로 진행한다.
조건문은 특정 조건을 만족할 때만 지정된 코드 블럭을 실행시킬 수 있는 문법이다.
2. 조건문 흐름
#include <iostream>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
if(a > b) {
cout << "첫 번째 수가 두 번째 수보다 큽니다.";
}
else if(a < b) {
cout << "첫 번째 수가 두 번째 수보다 작습니다.";
}
else {
cout << "입력된 두 수가 같습니다.";
}
return 0;
}위 예제 12 ~ 14 줄에서 if(a > b) { ... } 문을 통해 두 수의 크기를 비교한다.
15 ~ 17 줄의 else if(a < b) { ... } 는 첫 번째 조건인 a > b가 거짓이고 a < b일 때만 실행된다.
else if문은 if문과 else문 사이에 다수가 삽입될 수 있다. 첫 번째 else if부터 순차적으로 검사하며 만약 참인 조건문이 있을 경우 이후의 else if문은 실행되지 않는다.
마지막으로 18 ~ 20줄의 else문은 이전 if, else if의 조건들이 모두 거짓이었을 경우 실행된다. else if나 else문이 사용되기 위해선 반드시 선행하는 if문이 있어야 한다.
3. 비교 연산자
| 연산자 | 의미 |
|---|---|
| < | 작다 |
| > | 크다 |
| ⇐ | 작거나 같다 |
| >= | 크거나 같다 |
| == | 같다 |
| != | 다르다 |
4. 논리 연산자
| 연산자 | 의미 |
|---|---|
| && | and |
| || | or |
| ! | not |
5. 예제
#include <iostream>
using namespace std;
int main() {
int a;
cin >> a;
if(10 < a && a < 20) {
cout << "입력한 수가 10보다 크고 20보다 작습니다.";
}
if(a == 14 || a == 18) {
cout << "입력한 수는 14거나 18입니다.";
}
if(!(a == 15)) {
cout << "입력한 수는 15가 아닙니다.";
}
return 0;
}6. switch - case
조건 분기문의 한 특수한 형태로 알아두면 좋다.
특정 형태의 입력을 받을 때 if - else if문 보다 코드 가독성이 좋아 사용한다.
#include <iostream>
using namespace std;
int main() {
int a;
cin >> a;
switch(a) {
case 1: // a가 1일 때
// do something
break;
case 2: // 2일 때
// do something
break;
case 3: // 3일 때
// do something
break;
default: // 그 외 일 때
// do something
break;
}
return 0;
}각각의 case 들이 else if 역할을 한며 마지막 default가 else문의 역할을 한다.
7. 삼항 연산자
필자가 자주 사용하는 조건문이다. 코드가 간결하고 이해하기 쉽기 때문에 많이 쓰는게 좋다고 개인적으로 생각한다.
조건식 ? 참일 경우 실행되는 식 : 거짓일 경우 실행되는 식 의 형태를 가지고 있다.
#include <iostream>
using namespace std;
int main() {
int a, b; cin >> a >> b;
int mx = a > b ? a : b;
cout << "더 큰 값은 " << mx;
return 0;
}같은 동작을 하는 if-else코드를 보면 간결성을 확인할 수 있다.
#include <iostream>
using namespace std;
int main() {
int a, b; cin >> a >> b;
int mx;
if(a > b) {
mx = a;
}
else {
mx = b;
}
cout << "더 큰 값은 " << mx;
return 0;
}번외로 아래와 같이 괄호를 이용해 여러 번 엮거나 코드를 실행시킬 수도 있지만 이럴 경우 그냥 if-else문을 사용하는게 훨신 코드를 읽기 편하다.
다중 사용 예시
#include <iostream>
using namespace std;
int main() {
int a, b, c; cin >> a >> b >> c;
int mx = a > b ? (a > c ? a : (c > b ? c : b)) : (b > c ? b : (a > c ? a : c));
cout << "가장 큰 값은 " << mx;
return 0;
}코드 실행 예시
#include <iostream>
using namespace std;
// 코드 실행 예시
int main() {
int a, b; cin >> a >> b;
a > b ? cout << "더 큰 값은 " << a : cout << "더 큰 값은 " << b;
return 0;
}