본문 바로가기

Lang/Java

[Java] 연산자 우선순위의 이해

728x90

# 연산자 (operator) 의 종류

구분 종류 우선순위 결합규칙
단항 연산자 ++   --   +   -   ~   !   (type) 높음
산술 연산자 *   /   %  
+   -  
<<   >>  
비교 연산자 <   >   <=   >=   instanceof  
==   !=  
논리 연산자 &  
^  
|  
&&  
||  
삼항 연산자 ?:  
대입 연산자 =   +=   -=   *=   /=   <<=   >>=   &=   ^=   |= 낮음

 

 

# 연산자 우선 순위의 예

사용 예 설 명
-x + 1 x에 붙은 -가 +보다 먼저 연산된다. 단항 연산자 우선.
x + 2 * 3 +보다 *가 먼저 연산된다. 산술 연산자 중 * / % 우선.
x + 4 > y - 5 >보다 +, -가 먼저 연산된다. 산술 연산자 우선.
x > 6 && y < 8 &&보다 >, <가 먼저 연산된다. 비교 연산자 우선.
result = x + 9; 대입 연산자가 가장 마지막에 연산된다. 대입 연산자 우선순위 낮음.

 

# 연산자 결합규칙의 예

x + y + z 결합규칙이 왼쪽 먼저 진행된다. x + y 연산 후 + z 연산하는 순서
x = y = z 결합규칙이 오른쪽 먼저 진행된다. y에 z대입 후 다시 x에 대입하는 순서

* 단항연산자와 대입연산자만 오른쪽 먼저 결합하고,

나머지 연산자들은 모두 왼쪽 먼저 결합한다.

728x90