인디언식 기우제

자바 - 연산자의 우선순위 본문

Java/연산자

자바 - 연산자의 우선순위

밍주키니어 2022. 11. 5. 00:39

식에 사용된 연산자가 둘 이상인 경우, 연산자의 우선순위에 의해서 연산 순서가 결정된다.

5 + 3 * 4

기본적인 산술연산자는 우리가 수학에서 배운 것과 같다. 곱셈과 나눗셈(*, /)은 덧셈과 뺄셈(+,-) 보다 우선순위가 높다.

'3 * 4' 가 먼저 계산된 다음, 그 결과인 12에 5를 더해서 17을 결과로 얻는다.

 

이처럼 연산자의 우선순위는 대부분 상식적인 선에서 해결되고, 정해진 규칙만 따르면 이해하기 쉽다.

설명
-x + 3 단항 연산자가 이항 연산자보다 우선순위가 높다. 그래서 x의 부호를 바꾼 다음 덧셈이 수행된다. 여기서 '-'는 뺄셈 연산자가 아니라 부호 연산자이다.
x + 3 * y 곱셈과 나눗셈이 덧셈과 뺄셈보다 우선순위가 높다.
그래서 'x * 3'가 먼저 계산된다.
x + 3 > y - 2 비교 연산자(>)보다 산술연산자 '+'와 '-'가 먼저 수행된다.
그래서 'x + 3'과 'y - 2'가 먼저 계산된 다음에 '>'가 수행된다.
x > 3 && x < 5 논리연산자 '&&'보다 비교 연산자가 먼저 수행된다.
그래서 'x > 3'와 'x < 5'가 먼저 계산된 다음에 '&&'가 수행된다.
식의 의미는 'x가 3보다 크고 5보다 작다'이다.
result = x + y * 3; 대입 연산자는 연산자 중에서 제일 우선순위가 낮다.
그래서 우변의 최종 연산결과가 변수 result에 저장된다.

그리고 만약

a = b = c = 5

이렇게 대입 연산자가 여러 개라면 순서는 오른쪽에서 왼쪽이다.

c = 5, b = c, a = b 순으로 진행된다.

 

 5 + 3  * 4   // 17
(5 + 3) * 4   // 32

그리고 5 + 3 * 4는 곱셈이 먼저 계산되어 결과가 17이지만, 5 + 3을 먼저 계산하고 * 4를 하고 싶다면

위와 같이 5 + 3에 괄호()를 씌워주면 된다. 그러면 결과는 8 * 4 = 32가 된다.

 

 

위에 모든 것들을 더 간단하게 정리해보자면 다음과 같다.

1. 단항, 이항, 삼항 연산자 순으로 우선순위를 가진다.
2. 산술, 비교, 논리, 대입 연산자 순으로 우선순위를 가진다.
3. 단항과 대입 연산자를 제외한 모든 연산의 방향은 왼쪽에서 오른쪽이다(→).
4. 복잡한 연산식에는 괄호()를 사용해서 우선순위를 정해준다.

 

 

 

 

 

 

부족한 점, 잘못된 점이 있다면 지적 부탁드립니다. 피드백은 언제나 환영입니다.

'Java > 연산자' 카테고리의 다른 글

자바 - 삼항 연산자  (0) 2022.11.14
자바 - 이항 연산자  (0) 2022.11.14
자바 - 단항 연산자  (0) 2022.11.12
자바 - 연산자 Operator  (0) 2022.11.05