1. if Statement
조건식의 결과는 bool (T,F)로 나타내야 한다
조건이 참이면 명령이 실행된다, 이때 명령은 들여쓰기를 해서 쓰는게 구문파악에 좋다
명령이 1줄이면 { }를 생략해도 되지만 그냥 쓰는게 좋다
{ }안에 선언한 변수는 지역변수로 { }에서만 사용이 가능하다
//if
if (조건식)
{
명령;
}
int main()
{
int num{ 0 };
const int min{ 10 };
const int max{ 100 };
cout << "Enter a number between" << min << "and" << max << ": ";
cin >> num;
if (num >= min && num <= max) //조건문이 참이면
{
cout << num << "is greate than " << min << endl; //명령을 실행한다
int diff = 100; // { }안에 선언한 변수 -> 지역변수이기 때문에 해당 { }안에서만 사용이 가능하다
cout << diff << endl;
}
}
2. else, else if Statement
if문의 조건이 참이 아니면 else문의 명령이 실행된다
else if문은 if문의 조건이 참이 아니면 else if문의 조건을 검사 후 참이면 명령을 실행한다 (여러개 사용이 가능하다, 참인 조건의 else if문의 명령을 실행하고 if문을 빠져나간다)
if()와 여러개의 else if()를 검사 후 전부 거짓이면 else문의 명령을 실행한다
if, else if 는 조건이 참이면 명령을 실행하고 if문을 빠져나간다
//if-else
if (조건식)
{
명령;
}
else
{
명령;
}
//if-else-else if
if (조건식)
{
명령;
}
else if (조건식)
{
명령;
}
else if (조건식)
{
명령;
}
else
{
명령;
}
int main()
{
int num{};
const int target{ 10 };
cin >> num;
if (num >= 10) //num이 10 이상이면 호출
{
cout << num << "is greater than or equal to target" << endl;
}
else if (num < 5) //if문의 조건이 false 이고 num 이 5보다 작을 때
{
cout << num << "is less than 5" << endl;
}
else //if, else if 조건이 전부 false 일 때
{
cout << num << "is less than target but greater than 5" << endl;
}
}
3. Nested if Statement
if, else, else-if 문 안에 또 다른 if, else, else if를 계속해서 추가해서 사용이 가능하다 (이때 else, else if가 어떤 if에 속해있는지 잘 파악해야 한다)
너무 많은 if, else, else if를 안에 계속해서 사용하면 코드 가독성이 좋지 않다
int main()
{
int score{ 95 };
if (score > 90) //score가 90보다 클 때
{
if (score > 95) //score가 95보다 클 때
{
cout << "A+" << endl;
}
else //score가 90보다 크지만 95보다 작을 때
{
cout << "A" << endl;
}
}
else //score가 90보다 작을 때
{
cout << "Under than 90" << endl;
}
}
4. Switch-Case Statement & enum
Switch()의 평가대상과 맞는 값을 가진 case의 명령을 실행하고 break;를 만나 switch-case를 빠져나간다 (break를 쓰지 않으면 break를 만날때까지 밑의 case 값을 검사하지 않고 진행된다)
이때 맞는 Switch()의 평가대상과 같은 case값이 없다면 default:의 명령을 실행하고 switch-case를 빠져나간다 (default는 else와 비슷하다, break가 필요없다)
Switch()의 평가대상은 정수형 or enum형만 가능하다
case들의 값들은 상수(const, enum)만 들어갈 수 있다
switch (평가대상)
{
case 값1:
명령;
break;
case 값2:
명령;
break;
case 값3:
명령;
break;
default:
명령;
}
int main()
{
int InputValue{ 0 };
cin >> InputValue;
switch (InputValue) //정수 or enum만 들어간다
{
case 10: //상수, enum만 들어감
cout << "InputValue is : 10 " << endl;
break;
case 20:
{
cout << "InputValue is : 20 " << InputValue << endl;
break;
int Test{ 100 }; //case내부에서도 지역변수 선언이 가능하다
}
case 30: //break;가 없기 때문에 case 40으로 넘어간다
case 40:
cout << "InputValue is : 30 or 40" << InputValue << endl;
break;
default: //맞는 case값이 없을 때 호출됨
cout << "Not Correct Case" << endl;
}
enum의 이름은 타입으로 사용이 가능하며 같은 타입의 enum 내부 변수로 초기화가 가능하다
enum 변수값은 0부터 차례대로 초기화 된다 (순서대로 0, 1, 2....)
이때 중간값을 초기화 하면 그 값 + 1로 자동 초기화 된다
enum 변수값들은 상수이다
enum 변수값들은 정수형만 가능하고 컴파일 타임에 컴파일러에게 enum변수값이 무엇인지 알려주기 때문에 메모리에 할당되지 않는다 (메모리 낭비X)
enum 이름
{
변수,
변수,
변수
};
enum이름 변수명{ enum내부값 };
int main()
{
enum Color
{
Red, //0
Green, //1
Blue //2
};
enum Color2
{
Red, //0
Green = 10, //중간에 10으로 초기화
Blue //11
};
Color TempColor{ Red }; //enum이름을 타입으로 사용가능하다, 같은 타입의 enum의 변수값으로 초기화가 가능하다
Color2 TempColor2{ Green };
}
'C++' 카테고리의 다른 글
9. Character & String (134) | 2024.01.08 |
---|---|
8. Control Program Flow (2) (113) | 2023.12.21 |
6. Operators (연산자) (131) | 2023.12.12 |
5. Array And Vector (202) | 2023.12.09 |
4. Variables and Constants (110) | 2023.12.07 |