myVar.a += myVar.b -= myVar.c *= 10; 에서 사칙연산 순서가
1) myVar.c *= 10
2) myVar.a += myVar.b
3) myVar.b -= myVar.c 이러한 순서로 계산을 해야 하는것이 아닌가 해서요.
p60 페이지의 연산자 우선순위에 보면 결합규칙이 좌에서 우로 가는데 p478페이지의 정답 및 해설에서는
사칙연산의 순서가 우에서 좌로 계산을 진행을 해서 어떻한 경우에 우에서 좌로 계산을 하는지 궁금합니다.
안녕하세요.
사칙연산에서 곱셈과 나눗셈이 덧셈과 뺄셈보다 우선합니다.
곱셈과 나눗셈은 우선순위가 동등하여 같이 있는 경우에는 좌에서 우 순으로 계산됩니다.
덧셈과 뺄셈도 우선순위가 동등하여 같이 있는 경우에는 좌에서 우 순으로 계산됩니다.
그래서 맨 뒤의 *= 이 먼저 계산됩니다.
이후에는 +=를 먼저하든 -=를 먼저 하든 결과를 동일합니다.
맨 뒤의 값이 100인 상태에서
myVal.a에는 10
myVal.b에는 10
저장되어 있으므로
10+10 = 20에 -100을 하여 -80이 나오든
10-100 = -90에 +10을 하여 -80이 나오든 동일합니다.
오늘도 즐거운 하루 되세요.
-
*2017-03-13 10:01:53
안녕하세요.
사칙연산에서 곱셈과 나눗셈이 덧셈과 뺄셈보다 우선합니다.
곱셈과 나눗셈은 우선순위가 동등하여 같이 있는 경우에는 좌에서 우 순으로 계산됩니다.
덧셈과 뺄셈도 우선순위가 동등하여 같이 있는 경우에는 좌에서 우 순으로 계산됩니다.
그래서 맨 뒤의 *= 이 먼저 계산됩니다.
이후에는 +=를 먼저하든 -=를 먼저 하든 결과를 동일합니다.
맨 뒤의 값이 100인 상태에서
myVal.a에는 10
myVal.b에는 10
저장되어 있으므로
10+10 = 20에 -100을 하여 -80이 나오든
10-100 = -90에 +10을 하여 -80이 나오든 동일합니다.
오늘도 즐거운 하루 되세요.