이글은 "전문가를 위한 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 |
댓글