if...else는 C++에서 사용되는 조건문입니다. C++의 if 문은 주어진 조건이 참일 때 특정 코드 블록을 실행하고, if...else 문은 동일한 방식으로 작동하지만 조건이 거짓일 경우 두 번째 코드 블록을 실행한다는 점이 다릅니다. 또한 if와 if...else 문은 중첩해서 사용할 수도 있습니다.
조건문은 모든 프로그래밍 언어에서 빼놓을 수 없는 핵심 요소입니다. 조건문을 사용하면 프로그램 내에서 특정 조건이 충족되는지에 따라 코드를 실행할지 여부를 결정할 수 있습니다.
C++에서 if와 if...else 문은 표현식이 참인지 거짓인지 평가하고, 그 결과가 참일 때만 코드 블록을 실행합니다.
이 글에서는 예제와 함께 C++ 조건문의 기본 개념과 if, if...else, else if 문을 작성하는 방법을 살펴봅니다. 끝까지 읽고 나면 전문 개발자처럼 이러한 조건문을 자유롭게 활용할 수 있게 될 것입니다.
C++ 조건문의 기본 개념
개발자는 조건문을 사용해 어떤 조건이 충족될 때 코드 블록이 실행될지 정의합니다. 조건문 안의 코드 블록이 실행되는지 여부는 특정 조건 또는 조건 집합이 충족되는지에 달려 있습니다. 조건문이 활용되는 몇 가지 예시를 들어보겠습니다.
- 쇼핑객의 계좌에 잔액이 충분하면 결제를 진행하고, 잔액이 부족하면 결제를 거절해야 하는 경우
- 고객이 17세 이상이면 영화 관람을 허용하고, 그렇지 않으면 입장을 제한해야 하는 경우
- 베이커리에 밀가루 재고가 15봉지 미만이면 새 밀가루 케이스를 발주하고, 그렇지 않으면 아무 작업도 하지 않아야 하는 경우
이처럼 특정 조건이 충족될 때만 어떤 동작을 수행해야 할 때 if와 if...else 문이 사용됩니다.
C++ if 문
C++의 if 문은 표현식이 참인지 거짓인지 평가합니다. 표현식이 참으로 평가되면 프로그램은 조건문 내의 코드를 실행하고, 그렇지 않으면 해당 코드를 실행하지 않습니다.
if 문의 기본 문법은 다음과 같습니다.
if (expression) {
// Code here
}
예제를 통해 C++에서 if 문이 어떻게 작동하는지 살펴보겠습니다. 베이커리에서 새로운 밀가루 케이스를 발주해야 하는지 판단하는 프로그램을 작성한다고 가정해 보겠습니다. 재고에 밀가루가 15봉지 미만이라면 새로 발주해야 합니다.
이 작업은 다음 코드로 구현할 수 있습니다.
#include <iostream>
using namespace std;
int main() {
int flourBagCount = 12;
if (flourBagCount < 15) {
cout << "There are not enough bags of flour in inventory.";
}
}
이 코드를 실행하면 콘솔에 다음과 같이 출력됩니다.
There are not enough bags of flour in inventory.
이 예제를 하나씩 분석해 보겠습니다. 먼저 인벤토리에 있는 밀가루 봉지 수를 저장하는 변수 flourBagCount를 선언합니다. 그다음 if 문을 사용해 재고의 밀가루가 15봉지 미만인지 확인합니다.
변수 flourBagCount가 15보다 작으면 "There are not enough bags of flour in inventory."라는 메시지가 콘솔에 출력되고, 그렇지 않으면 아무 일도 일어나지 않습니다. 이 예제에서 flourBagCount는 12로 15보다 작기 때문에 프로그램은 if 문 내부의 코드를 실행합니다.
C++ if...else 문
if 문을 사용할 때, 조건이 거짓으로 평가되었을 때 단순히 넘어가는 것 외에 다른 동작을 수행하기를 원할 수 있습니다.
if...else 문은 if 문과 마찬가지로 조건을 검사합니다. 조건이 충족되면 프로그램은 if 부분의 코드를 실행합니다. 하지만 if 문과 달리, if...else 문에서는 조건이 충족되지 않을 경우 else 문의 내용이 실행됩니다.
if...else 문의 기본 문법은 다음과 같습니다.
if (expression) {
// Run code
} else {
// Run other code
}
앞서 살펴본 베이커리 예제를 다시 가져와 보겠습니다. 이 예제에서 재고가 15봉지 미만이면 프로그램은 베이커에게 밀가루가 부족하다는 메시지를 콘솔에 출력합니다. 하지만 재고가 충분하면 아무 일도 일어나지 않습니다.
이번에는 재고가 15봉지 이상일 때 베이커에게 재고가 충분하다는 메시지를 표시하고 싶다고 가정해 보겠습니다. 바로 이럴 때 if...else 문을 사용할 수 있습니다. 다음 코드는 재고가 충분할 때 특정 메시지를 콘솔에 출력하도록 프로그램에 지시합니다.
#include <iostream>
using namespace std;
int main() {
int flourBagCount = 16;
if (flourBagCount < 15) {
cout << "There are not enough bags of flour in inventory.";
} else {
cout << "There are enough bags of flour in inventory.";
}
}
이 코드의 실행 결과는 다음과 같습니다.
There are enough bags of flour in inventory.
이 예제에서는 flourBagCount 값을 16으로 변경했고, 코드에 else 문을 추가했습니다.
flourBagCount가 15보다 작지 않기 때문에 if 문은 거짓으로 평가됩니다. 따라서 프로그램은 대신 else 문의 내용을 실행합니다. 그 결과 프로그램은 "There are enough bags of flour in inventory."라는 텍스트를 콘솔에 출력합니다.
C++에서는 중첩 if 문을 허용합니다. 중첩 if 문이란 다른 문장 안에 if 또는 if...else 문이 포함된 형태를 말합니다. 하지만 이런 요구 사항을 처리할 때는 else if 문을 사용하는 것이 더 깔끔한 방법일 때가 많습니다.
C++ else if 문
지금까지 조건이 참일 때 특정 응답을 코딩하기 위해 if 문을 사용하는 방법과, 앞선 if 문이 거짓으로 평가될 때 특정 코드를 실행하기 위해 else 블록을 사용하는 방법을 살펴봤습니다. 그렇다면 여러 조건을 검사하고 그중 하나라도 참이면 코드 블록을 실행하려면 어떻게 해야 할까요?
프로그램에서 여러 조건을 검사하려면 else if 문을 사용해야 합니다. C++에서 else if 문의 기본 문법은 다음과 같습니다.
if (expressionOne) {
// Code to run if condition is true
} else if (expressionTwo) {
// Code to run if condition is false and expressionTwo is true
} else {
// Code to run if all test expressions are false
}
예제를 통해 else if 문이 어떻게 작동하는지 알아보겠습니다.
앞서 만든 베이커리 프로그램에 메시지를 추가하여, 밀가루 재고가 15봉지 이상 20봉지 이하일 때 베이커에게 알려주고 싶다고 가정해 보겠습니다. 프로그램이 수행해야 할 작업은 다음과 같습니다.
- 재고가 20봉지를 초과하면 "There are enough bags of flour in inventory."라는 메시지를 출력합니다.
- 재고가 15~20봉지 사이이면 "A new order for flour should be placed soon."라는 메시지를 출력합니다.
- 재고가 15봉지 미만이면 "There are not enough bags of flour in inventory."라는 메시지를 출력합니다.
이 프로그램은 다음 코드로 구현할 수 있습니다.
#include <iostream>
using namespace std;
int main() {
int flourBagCount = 16;
if (flourBagCount > 20) {
cout << "There are enough bags of flour in inventory.";
} else if (flourBagCount <= 20 && flourBagCount >= 15) {
cout << "A new order for flour should be placed soon.";
} else {
cout << "There are not enough bags of flour in inventory.";
}
}
이 코드의 실행 결과는 다음과 같습니다.
A new order for flour should be placed soon.
이 예제에서 프로그램은 두 가지 조건을 검사하고, 두 조건이 모두 거짓으로 평가될 경우 실행되는 else 문을 포함합니다.
위 코드의 첫 번째 조건문에서 프로그램은 flourBagCount 값이 20보다 큰지 확인합니다. 그렇다면 "There are enough bags of flour in inventory."라는 메시지가 콘솔에 출력됩니다.
이 문장이 거짓으로 평가되면 else if 문이 평가됩니다. 이 예제에서 else if 문은 flourBagCount 값이 20 이하이면서 15 이상인지 확인합니다. 두 조건이 모두 참이면 "A new order for flour should be placed soon."이라는 메시지가 콘솔에 출력됩니다. 위 예제가 바로 이 경우에 해당합니다.
코드의 두 조건문(if와 else if)이 모두 거짓으로 평가되면 프로그램은 else 문의 코드를 실행합니다. 이 경우 프로그램은 "There are not enough bags of flour in inventory."라는 메시지를 출력합니다.
마무리
C++에서 if와 if...else 문을 사용하면 프로그램의 흐름을 제어할 수 있습니다.
if 문은 조건이 참인지 평가하고 참일 경우 특정 코드를 실행합니다. else if 문은 두 번째 조건이 참인지 평가하고 참일 경우 특정 코드를 실행합니다. else 문은 if 문의 지정된 조건 중 어느 것도 참이 아닐 때 특정 코드를 실행합니다.
이 글에서는 예제와 함께 C++에서 if, if...else, else if 문을 사용하는 방법을 살펴봤습니다. 이제 전문 개발자처럼 C++ 조건문을 활용할 준비가 되셨기를 바랍니다.