산술 연산식에서 덧셈, 뺄셈 연산자보다 곱셈, 나눗셈 연산자가 우선 처리된다는 것을 우리는 이미 알고 있다. 그러면 다른 연산자들의 경우는 어떨까? 연산자들은 우선순위가 정해져 있다. 우선순위가 같은 대부분의 연산자들 끼리는 왼쪽에서부터 오른쪽으로 연산을 수행한다.
예외가 하나 있는데, 대입 연산자(+=, -=, =, ···)는 오른쪽에서 왼쪽으로 연산을 수행한다.
a = b = c = 5;
위 연산식은 c = 5, b = c, a = b 순서로 실행된다. 이와 같이 연산자는 우선순위 및 연산 방향이 정해져 있기 때문에 복잡한 연산식에서는 주의가 필요하다. 다음은 연산자들의 연산 방향과 우선순위를 정리한 표이다.
| 연산자 | 연산 방향 | 우선순위 |
| 증감(++, --), 부호(+, -), 비트(~), 논리(!) | ← | 높음 낮음 |
| 산술(*, /, %) | → | |
| 산술(+, -) | → | |
| 쉬프트(<<, >>, >>>) | → | |
| 비교(<, >, <=, >=, instanceof) | → | |
| 비교(==, !=) | → | |
| 논리(&) | → | |
| 논리(^) | → | |
| 논리(|) | → | |
| 논리(&&) | → | |
| 논리(||) | → | |
| 조건(?:) | → | |
| 대입(=, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>=) | ← |
위 표를 숙지했다 하더라도 여러가지 연산자들이 섞여 있다면 어느 연산자가 먼저 처리될지 매우 혼란스러울 것이다. 그래서 먼저 처리해야할 연산을 괄호()로 묶는 것을 추천한다. 괄호()는 최우선순위를 가진다.
'Language > JAVA' 카테고리의 다른 글
| [JAVA] Math.random 메소드 (0) | 2024.09.03 |
|---|---|
| [JAVA] if 문 (2) | 2024.09.03 |
| [JAVA] 삼항(조건) 연산자 (0) | 2024.09.03 |
| [JAVA] 대입 연산자 (0) | 2024.09.03 |
| [JAVA] 논리 연산자 (0) | 2024.09.03 |