본문 바로가기

cording/자바의정석

[Operator] 연산자, 우선순위와 결합규칙

연산자(operator) : 연산을 수행하는 기호 (+,-,*,/ 등)

피연산자 (operand): 연산자의 작업대상 (변수, 상수, 리터럴, 수식)

연산자에는 우선순위와 결합규칙이 있다.

우선순위는 

예를 들어 

x << 2+1  시프트 연산자 (<<)는 덧셈연산자 보다 우선순위가 낮다.그래서 위의 식은 x <<(2+1) 와 같다.data &0xFF == 0  비트 연산자 (&)는 비교연산자 (==) 보다 우선순위가 낮으므로 비교연산 후에 비트연산이 수행된다.그래서 위의 식은  data & (0xFF == 0)과 같다.x< -1 || x > 3 && x < 5  논리 연산자 중에서 AND를 의미하는 '&' 와 '&&' 가 OR를 의미하는 '|' 와 '||' 보다 우선순위가 높다.그래서 위의 식은 x < -1 || (x > 3 && x < 5)과 같다. 연산자의 결합규칙은 연산자마다 다르지만, 대부분 왼쪽에서 오른쪽의 순서로 연산을 수행하고, 단항연산자와 대입연산자만 그 반대로, 오른쪽에서 왼쪽의 순서로, 연산을 수행한다.

 

3 + 4 - 5 : 왼쪽에서 오른쪽순서대로 연산한다.x = y = 3 : 오른쪽에서 왼쪽으로 연산한다.x= 33정리하자면 다음과 같다.

1. 산술 > 비교 > 논리 > 대입 대입은 제일 마지막에 수행된다.

2. 단항(1) > 이항(2) > 삼항(3). 단항 연산자의 우선순위가 이항 연산자 보다 높다.

3. 단항 연산자와 대입연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽이다.