순서도에서 다이아몬드는 조건에 따라 흐름을 어디로 갈지 결정하는 기호이다. 이것을 조건 분기라고 부른다. 프로그래밍이란 결국 순서도를 코드로 표현하는 것인데 그러면 조건 분기는 어떻게 코드로 표현할 수 있을까?
if문을 이용해서 표현할 수 있다.
if (조건문) {
조건이 참일 경우 실행되는 코드
}
여기서 조건문은 비교를 통해 조건이 참인지 거짓인지 결정하는 결정하는 구문이다.
예를 들어 a = 10 일 때 a < 11은 참일까 거짓일까? 10<11이므로 참이다. 코드로 표현해보자.
int a = 10;
if (a < 11) {
cout << "참" << endl;
}
같다는 == 기호로 표현하면 된다.
int a = 10;
if (a == 10) {
cout << "참" << endl;
}
다르다는 != 기호로 표현한다. 프로그래밍 언어에서 !는 부정을 의미한다.
int a = 10;
if (a != 5) {
cout << "참" << endl;
}
크거나 같다 또는 작거나 같다는 <= 또는 >= 로 표현한다. 꺽쇠와 등호 순서가 바뀌면 안 된다.
int a = 10;
if (a <= 10) {
cout << "참" << endl;
}
a가 3보는 크고 5보다는 작다는 것을 어떻게 표현할까? 2개의 조건이 참임을 표현할 때는 &&를 이용하면 된다.
int a = 4;
if (a > 3 && a<5) {
cout << "참" << endl;
}
a가 3보다 크거나 -3보다 작다는 것은 어떻게 표현할까? 2개의 조건 중 하나가 참이기만 할 때는 || 를 이용하면 된다. 이 기호를 파이프라고 부르는데 키보드 } 오른쪽에 있다.
int a = 4;
if (a > 3 || a<-3) {
cout << "참" << endl;
}
자 여기서는 조건이 참일 경우에만 표현했다. 그렇다면 참이 아닐 때는 코드를 실행하고 싶다면 어떻게 해야 할까? 이때는 else 구문을 이용하면 된다.
int a = 10;
if (a > 10) {
cout << "출력 안 됨" << endl;
} else {
cout << "출력됨" << endl;
}
a는 10이니까 else구문 안에 있는 "출력됨"을 출력할 것이다.
마지막으로 조건이 여러 개일 경우는 어떻게 해야 할까? 이 때는 if문과 else문 사이에 else if문을 넣으면 된다.
int a = 10;
if (a > 0) {
cout << "양수" << endl;
} else if (a == 0) {
cout << "0" << endl;
} else {
cout << 음수 << endl;
}