휘발되기 전에 휘갈김
+-*/%
1번) 변수 선언 int hp; (상자를 임대하는 것!)
2번) 변수 초기화 또는 쓰기: hp = 100;
3번) 변수 읽기: Console.WriteLine(hp);
int hp = 100;
변수 선언과 쓰기가 동시에 일어난다.
hp = hp - 5;
읽기와 쓰기가 동시에 일어난다.
int a = 10 / 3;
일반적으로 생각했을 때 3.3333이 나오리라 생각될 수 있지만
위에서는 정수 타입을 기반으로 연산하여 결과 값을 마찬가지인 정수 타입 int에 담아주고 있기에 a에는 3이 할당된다.
int b = 10 % 3;
나머지 연산자인 %가 어디에 쓰일지 의문스러울 수 있다.
5의 배수인지 여부 (n % 5), 짝수인지 여부 (n % 2) 등 생각보다 많은 상황에 쓰인다.
int n = 0;
int a = 10 / n;
0으로 나눈다는 것은 불가능하기 때문에 crash가 난다.
int value = 5;
hp = hp + value;
hp가 너무 반복되는 것은 아닐까?
축약문법이 존재한다.
hp += value;
hp -= value;
hp *= value;
1을 더하고 빼는 일은 아주 흔한데,
이 코드 마저도 너무 귀찮다면?
hp++;
hp--;
또한 ++가 앞에 붙느냐 뒤에 붙느냐에 따라 실행단계가 다르다.
int a = 10;
Console.WriteLine(a++);
출력을 해보면 놀랍게도 10이 그대로 뜨는 것을 알 수 있다.
Console.WriteLine의 매개변수로 전달되는 값은 증가하기 전의 값이다. 따라서 출력을 하고난에 후 a의 값이 1 증가하여 11이 된다.
++가 뒤에 붙으면 할당보다 증가가 우선순위가 낮아진다.
이를 후위 증가 연산자라고 한다.
int a = 10;
int b = a++
// int b = a;
// a += 1;
++가 앞에 붙으면 증가가 할당보다 우선순위가 올라간다.
이를 전위 증가 연산자라고 한다.
int a = 10;
int b = ++a
// a += 1;
// int b = a;