본문 바로가기
Program Language/c++

c++ 기초(조건문(if ~ else if ~ else))

by 토담이아빠 2023. 1. 3.

if ~ else if ~ else

 

이글은 "전문가를 위한 c++(개정4)" 학습한 내용을 직접 실습해보며 정리한 Review 글입니다.


조건문(if ~ else if ~ else)

 

가장 흔히 사용하는 조건문으로 if 문에 나온 조건이 참이면 if 문에 속한 코드를 실행합니다. if문은 단독으로도 쓸 수 있고

else if문이나 else 문과 같이 쓸 수 도 있습니다. 


if (i > 4) {
	// 뭔가 작업을 한다.
}
else if (i < 2) {
	// 다른 일을 한다.
}
else {
	// 다른 일을 한다.
}

#include <iostream>
 
using namespace std;
 
struct Employee
{
	string firstName;
	string lastName;
	int employeeNumber;
	int salary;
};
 
 
int main()
{	
	//직원 정보 등록
	Employee anEmployee;
	anEmployee.firstName = "Gildong";
	anEmployee.lastName = "Hong";
	anEmployee.employeeNumber = 52;
	anEmployee.salary = 8000000;
 
	//직원 정보 출력
 
	if (anEmployee.employeeNumber == 52) {
		// 사원 번호에 해당하는 정보를 출력한다.
		cout << "Employee: " << anEmployee.firstName << anEmployee.lastName << endl;
		cout << "Salary: $" << anEmployee.salary << endl;
 
	}
	else if (anEmployee.employeeNumber < 52) {
		cout << "해당하는 사원 정보가 없습니다." << endl;
	}
	else {
		cout << "해당하는 사원 정보가 없습니다." << endl;	
	}
 
	return 0;
}

if 문 뒤 소괄호 안에는 반드시 결과값이 부울값인 표현식이 나와야합니다. 위 예제에서 (anEmployee.employeeNumber == 52)은 참이면 true(1), 거짓이면 false(0)을 반환합니다.

 

c++ 17부터 if문 안에 이니셜라이저(initializer)를 넣는 기능이 추가됐습니다.


if(<이니셜라이저> ; <조건문>) {<본문>}

다음 예제는 간단한 company 클래스를 등록 후,  이니셜라이저를 사용해 사원의 정보를 불러옵니다. 직원의 급여를 해당조건에 맞는 지 확인하고 본문 코드를 실행합니다. 


#include <iostream>
 
using namespace std;
 
struct Employee
{
	string firstName;
	string lastName;
	int employeeNumber;
	int salary;
};
 
class Company
{
public:
	Company() = default;
	~Company() = default;
	Employee getEmployee(){
		return m_Employee;
	}
	void setEmployee(Employee employee) {
		m_Employee = employee;
	}
private:
	Employee m_Employee;
};
 
int main()
{	
	//직원 정보 등록
	Employee anEmployee;
	anEmployee.firstName = "Gildong";
	anEmployee.lastName = "Hong";
	anEmployee.employeeNumber = 52;
	anEmployee.salary = 8000000;
 
	Company cmpy;
	cmpy.setEmployee(anEmployee);
 
 
	//이니셜라이저 사용
	if (Employee emplyee = cmpy.getEmployee(); emplyee.salary > 7000000) {
		cout << "해당 사원은 고액 연봉자입니다." << endl;
	}
	else {
		cout << "해당 사원은 고액 연봉자가 아닙니다." << endl;
	}
 
	return 0;
}

결과


<이니셜라이저>에서 정의한 변수는 <조건문> 과 <본문>안에서만 사용할 수 있고 if문 밖에서는 사용할 수 없습니다.

'Program Language > c++' 카테고리의 다른 글

C++ 기초(조건 연산자)  (0) 2023.01.04
C++ 기초(조건문(switch/case))  (2) 2023.01.03
C++ 기초(구조체)  (0) 2023.01.03
c++ 기초(enum)  (0) 2023.01.02
c++ 기초(연산자)  (0) 2022.12.29

댓글