a=a/b++-c*d
a/9-6
12/3
4
아닌가요?!
후치연산법으로 그러면 계산 다 해서 6이 나오고 +1을 해야하는 거 아니예요?!?
왜 아무것도 증가 하지 않고 그대로 답이 6이되나요?
안녕하세요 길벗수험서 운영팀입니다.
int a = 12, b = 8, c = 2, d = 3;
a /= b++ - c * d;
위의 식에서 a /= b++ - c * d; 를 풀어보면 아래와 같이 됩니다.
a = a / (b - c * d);
b = b + 1;
b는 후치수식이므로 식이 종료된 뒤 연산되므로, 뒤의 식으로 빠집니다. 후치수식은 변수 b에 붙어있는 연산자이므로 a에 더해지는 것이 아닌 b에 더해집니다.
(전치수식이라면 앞에서 먼저 계산을 해야겠죠.)
이제 값을 넣어보죠.
= 12 / (8 - 2 * 3)
= 12 / (8 - 6)
= 12 / 2
= 6
이렇게 a는 6의 값을 가지게 되고, b는 후치수식을 통해 9의 값을, 나머지는 초기값을 그대로 갖게 됩니다.
행복한 하루되세요 :)
-
관리자2019-09-10 13:07:30
안녕하세요 길벗수험서 운영팀입니다.
int a = 12, b = 8, c = 2, d = 3;
a /= b++ - c * d;
위의 식에서 a /= b++ - c * d; 를 풀어보면 아래와 같이 됩니다.
a = a / (b - c * d);
b = b + 1;
b는 후치수식이므로 식이 종료된 뒤 연산되므로, 뒤의 식으로 빠집니다. 후치수식은 변수 b에 붙어있는 연산자이므로 a에 더해지는 것이 아닌 b에 더해집니다.
(전치수식이라면 앞에서 먼저 계산을 해야겠죠.)
이제 값을 넣어보죠.
= 12 / (8 - 2 * 3)
= 12 / (8 - 6)
= 12 / 2
= 6
이렇게 a는 6의 값을 가지게 되고, b는 후치수식을 통해 9의 값을, 나머지는 초기값을 그대로 갖게 됩니다.
행복한 하루되세요 :)