[C++]조건문(if, else if, else)과 switch case문

목차

  1. 조건문이란
  2. if문과 else / else if문 사용
  3. switch case문 사용

1. 조건문이란

조건문은 어떤 조건이 주어질 때 어떤 동작을 수행하도록 하는 것으로, 주어진 조건의 만족여부에 따라 선택적으로 실행하고자 할 때 사용되는 문장입니다. 만족 여부를 bool 자료형으로 리턴하며,  bool값에 따라 달라지는 계산이나 상황을 수행하는 프로그래밍 언어의 특징입니다.

by 위키백과


2. 조건문(if, else, else if)사용

코드로 먼저 보겠습니다.

#include <iostream>

int main(void){
	
	int num = 1;

	if (num < 2) {
		std::cout << "num은 2보다 작습니다." << "\n";
	}
	return 0;
}

기본적인 if문 사용입니다.

if(  조건식  ){  } 으로 사용하며 조건식이 참일경우 { } 안의 문장들이 실행되며 / 거짓일경우 { } 를 빠져나가며 return 0을 만나 프로그램이 종료됩니다. if문이 참일때 실행할 코드가 한줄뿐이라면 { }로 선언하지 않아도 됩니다. 2줄 이상이면 반드시 해주셔야 합니다.

num을 1로 초기화 시킨 후 if문에서 num이 2보다 작은지 판단 후 참이 되므로 if문안에 출력문이 실행되는 것을 볼 수 있습니다.

 


else문

if  else는 기본적인 if문에서 if문이 거짓일때 else의 실행문을 실행하도록 하기 위한 문장입니다.
#include <iostream>

int main(void){
	
	int num = 3;

	if (num < 2) {
		std::cout << "num은 2보다 작습니다." << "\n";
	}
	else {
		std::cout << "num은 2보다 큽니다." << "\n";
	}
	return 0;
}

코드에서 num을 3으로 초기화를 시킨후 if문에서 조건을 확인합니다.

num이 2보다 크기때문에 거짓인 bool값 false를 반환하며 else를 실행하도록 합니다.

조건문의 거짓으로인해 else문이 출력된 것을 볼 수 있습니다.


else if 문

else if문은 if문의 또다른 조건식을 세우기 위한 조건문이며, if문 바로 밑에 쓰입니다.
#include <iostream>

int main(void){
	
	int num = 3;

	if (num < 2) {
		std::cout << "num은 2보다 작습니다." << "\n";
	}
	else if (num == 3) {
		std::cout << "num은 3입니다. " << "\n";
	}
	else {
		std::cout << "num은 2보다 큽니다." << "\n";
	}
	return 0;
}

우선 num을 3으로 초기화를 시켜준 후, 처음 if문에서 참인지 거짓인지를 판별합니다.

조건이 참이면 if문의 실행문을 실행시킨 후 return으로 빠져나가겠지만, 거짓이므로 else if문의 조건식으로 넘어가게 됩니다.

 

이제 else if문의 조건식이 참인지를 판별합니다.

num값이 3인지를 판별하는 조건식에서 참이므로 "num은 3입니다."를 출력하고 조건문을 빠져나가며 return을 만나 프로그램은 바로 종료될 것 입니다.

잘 되네요.


2. switch case문

if / else if / else 와 비슷하며 C언어 에서 사용하는 제어문중 하나인 분기명령입니다.
같은 변수를 비교함에 있어서 if문보다 가독성이 좋고, 컴파일러 최적화를 쉽게할 수 있습니다.
#include <iostream>

int main(void){
	
	int num =0;
	std::cout << "num값 입력: ";
	std::cin >> num;

	switch (num) {
	case 1:
		std::cout << "num은 1입니다." << "\n";
		break;
	case 2:
		std::cout << "num은 2입니다." << "\n";
		break;
	case 3:
		std::cout << "num은 3입니다." << "\n";
		break;
	case 4:
		std::cout << "num은 4입니다." << "\n";
		break;
	default:
		std::cout << "조건에 맞는 숫자가 없습니다." << "\n";
	}
	return 0;
}

우서 num값을 0으로 초기화를 시킨 후 cin으로 num값을 입력받도록 합니다. (입력받을 값이더라도 초기화를 해주는 습관은 좋습니다.)

case는 num값에 일치하는 값을 넣고 비교한 후 실행문을 실행시키는 역할을 하며, break는 조건식을 탈출 하겠다는 뜻입니다.

default는 위 case의 조건에 맞는 값이 없으면 실행할 문장이며 else와 비슷한 역할을 합니다.

2를 입력했을때 case 2의 실행문을 출력하는 것입니다.

 

 

5를 입력했을때는 case에 1 2 3 4만을 지정해주었기에 조건에 맞는 값이 없어 default가 실행되는것입니다.

 

※주의 ※

여기서 break가 조건식을 탈출하는 역할이라고 설명드렸었는데 위 코드에서 break를 빼고 실행하면 원하는 출력을 낼 수 없게 됩니다.

break없는 switch문은 조건에 맞는 식부터 아래로 쭉 차례대로 실행문들을 모두 출력시켜버리게 되므로 switch case문을 사용시에는 break를 반드시 활용해주시는 것이 좋습니다.

 

break를 빼고 3을 입력한 결과입니다.

 

 

이상입니다.