자바/기본적인 개념

연산자의 우선순위와 결합 규칙

백_곰 2021. 1. 1. 19:57

대부분 잘 알지만, 헷갈리는 부분을 정리해보았다.

 

1. AND 그리고 OR 연산 순위

- AND 즉, '&' 또는 '&&'가 '||'보다 연산 순위가 높다.

 

2. 시프트 연산자

- 만약 "x << 2 + 1"이 있다면, + 연산자가 우선순위가 높기에 +를 먼저 진행하고 시프트 연산을 수행한다.

 

3. 결합 규칙(우선순위)

(1) 산술 > 비교 > 논리 > 대입 

(2) 단항 > 이항 > 삼항

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

(보통 왼쪽에서 오른쪽으로 연산하는 것이 일반적인데, 가끔 오른쪽에서 왼쪽으로 연산을 수행하는 경우도 있다.

예를 들자면, x = y = 3인 경우이다. 이때, 프로그램은 오른쪽에서 왼쪽으로 수행한다.)

 

4. 단항 연산자

- ++, --, +, -, ~, !, (type) 같은 경우들이 단항 연산자 인데, 오른쪽에서 왼쪽으로 수행하는 것이 일반적이다.

 

5. 대입 연산자

- =, +=, -=, *=, /=, %=, >>=, <<=, &=, ^=, != 같은 경우들이 대입 연산자들인데, 위에서도 말했듯이 오른쪽에서

왼쪽으로 수행하는 것이 일반적이다.

 

6. 증감 연산자

- ++, --를 의미한다.

- 전위형, 후위형이 존재한다.

 

- 예제

(답은 -2이다.)

 

(답은 -9이다.)

 

(이처럼 지나치게 복잡하면 가독성이 안 좋기 때문에, 바람직하지 않다.)

(그래서 식에 두 번 이상 포함된 변수에 증감연산자를 사용하는 것은 피해야 한다.)

 

 

7. 부호 연산자

- +, -를 말한다.

- +는 하는 일이 없으므로, 거의 사용되지 않고 -를 사용한다.

 

- 예제