1. 분기문
스킵
2. 반복문
while, do while, for, break, continue
3. 열거형
#include <iostream>
using namespace std;
// 상수인건 알겠는데, 너무 따로 노는 느낌?
// 하나의 셋트인데?
// 경우에 따라서 어셈블리 코드를 까 보면 메모리에 변수로 올라가는 경우도 있음
// 보통은 상수로 최적화 되긴 함
const int SICCERS = 1;
const int ROCK = 2;
const int PAPER = 3;
// 숫자를 지정 안하면 첫 값음 0부터 시작
// 그 다음 값들은 이전 값 + 1
// const 보다 열거형이 더 선호됨. 메모리에 올라가지 않기 때문. (메모리상으로 더 이점이 있음)
// 모던 c++ 에서는 enum class 를 사용함 나중에 알아봄
enum ENUM_SICCERS_ROCK_PAPER
{
ENUM_SICCERS = 1,
ENUM_ROCK,
ENUM_PAPER
};
// # 붙은거 -> 전처리 지시문
// 1)전처리 2)컴파일 3)링크
// #include <iostream> -> 전처리기가 iostream 파일을 찾아서 그 내용을 통째로 복사해 옴
#define DEFINE_SICCERS 1
#define DEFINE_TEST cout << "test" << endl; // 꼭 정수가 아니어도 됨. 매크로 함수처럼 사용 가능. 그냥 바꿔치기 하는거임
// 그냥 바꿔치기 하는거라서 난해한 상황이 발생할수도 있음
// 디버깅 할때도 DEFINE_TEST 라는 것은 날라가기 때문에 디버깅이 어려움
#define DEFINE_TEST2 1+2
// 따라서 define 은 c++ 프로그래머 사이에서 지양하는 것임. (사용하지 않는 것이 좋음)
// enum 을 0순위로 생각하는 것이 좋음
int main()
{
DEFINE_TEST;
int result = DEFINE_TEST2 * 2; // 1+2 * 2 (결과가 6이 아님)
cout << result << endl;
}