IT/Java
[Java] 연산의 방향과 우선순위
Huitopia
2024. 2. 21. 15:13
728x90
연산자는 우선순위 및 연산 방향이 정해져 있어 복잡한 연산식에서는 주의가 필요하다.
연산자 | 연산 방향 | 우선순위 |
증감(++, --), 부호(+, -), 비트(~), 논리(!) | ⬅️ | 높음 ⬇️ 낮음 |
산술(*, /, %) | ➡️ | |
산술(+, -) | ➡️ | |
쉬프트(<<, >>, >>>) | ➡️ | |
비교(<, >, <=, >=, instanceof) | ➡️ | |
비교(==, !=) | ➡️ | |
논리(&) | ➡️ | |
논리(^) | ➡️ | |
논리(|) | ➡️ | |
논리(&&) | ➡️ | |
논리(||) | ➡️ | |
조건(?:) | ➡️ | |
대입(=, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>=) | ⬅️ |
표를 숙지했다 하더라도 여러가지 연산자들이 섞여 있다면 어느 연산자가 먼저 처리될지 알기 어려우니 먼저 처리해야 할 연산을 괄호()로 묶는 것을 추천한다. 괄호()는 최우선 순위를 가지기 때문이다.
int var1 = 1;
int var2 = 2;
int var3 = 2;
int result = var1 + var2 * var3;
+ 보다 *가 우선순위이므로 * 먼저 계산
- var2 * var3 = 4
- var1 + 4
int result = (var1 + var2) * var3
+보다 *가 우선순위지만 괄호 사용으로 최우선 순위 먼저 계산
- var1 + var2 = 3
- 3 * var3
728x90