책 내용 질문하기
4번 연산자 우선순위 질문입니다.
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
101
조회수
59
작성일
2017-04-12
작성자
첨부파일
c와 java의 연산자 우선순위가 어떻게 되나요?
myVar.a+=myVar.b-=myVar.c*=10;
여기서 연산의 방향이 오른쪽에서 왼쪽으로 가더라구요
그런데 *는 가장 먼저하는 것을 알겠는데
+와 -는 우선순위가 같아서 왼쪽에 있는 것을 먼저 하는 것이 아닌가요?
그리고 부록책 81쪽 5번에서
a/=b++ - c * d;
라고 나와있는데 왜 (b++ - c * d) 이렇게 괄호로 묶여서 먼저 처리가 되는 것인가요?ㅠㅠ
앞에서 부터 차례 대로 하는 게 아닌가요?
답변
2017-04-13 11:02:02
안녕하세요.
a *= b는 a = a * b 입니다.
하지만 b에 수식이 있는 경우 해당 수식을 먼저 계산한 후 그 결과를 a에 곱한다는 의미입니다.
그래서 연산자 우선순위의 개념이 아니라 계산 우선에 따라 뒤쪽에 곱해질 내용을 먼저 계산하는 것입니다.
a /= b++-c*d
부분도 같은 개념으로 b++ - c*d 가 계산된 결과로 a를 나누는 것이므로 뒤쪽에 나눌 값을 먼저 계산한 것입니다.
오늘도 즐거운 하루 되세요.
-
*2017-04-13 11:02:02
안녕하세요.
a *= b는 a = a * b 입니다.
하지만 b에 수식이 있는 경우 해당 수식을 먼저 계산한 후 그 결과를 a에 곱한다는 의미입니다.
그래서 연산자 우선순위의 개념이 아니라 계산 우선에 따라 뒤쪽에 곱해질 내용을 먼저 계산하는 것입니다.
a /= b++-c*d
부분도 같은 개념으로 b++ - c*d 가 계산된 결과로 a를 나누는 것이므로 뒤쪽에 나눌 값을 먼저 계산한 것입니다.
오늘도 즐거운 하루 되세요.