늦은 프로그래밍 이야기

연산자의 우선순위와 결합방향 본문

내일배움캠프/Java 기초

연산자의 우선순위와 결합방향

한정규 2022. 11. 17. 21:00

우선순위표

우선순위 연산자 설명 결합 방향
1 [] 첨자 연산자 왼쪽에서 오른쪽으로
. 멤버 연산자
2 ++ 후위 증가 연산자 왼쪽에서 오른쪽으로
-- 후위 감소 연산자
3 ! 논리 NOT 연산자 오른쪽에서 왼쪽으로
~ 비트 NOT 연산자
+ 양의 부호 (단항 연산자)
- 음의 부호 (단항 연산자)
++ 전위 증가 연산자
-- 전위 감소 연산자
(타입) 타입 캐스트 연산자
4 * 곱셈 연산자 왼쪽에서 오른쪽으로
/ 나눗셈 연산자
% 나머지 연산자
5 + 덧셈 연산자 (이항 연산자) 왼쪽에서 오른쪽으로
- 뺄셈 연산자 (이항 연산자)
6 << 비트 왼쪽 시프트 연산자 왼쪽에서 오른쪽으로
>> 부호 비트를 확장하면서 비트 오른쪽 시프트
>>> 부호 비트까지 모두 비트 오른쪽 시프트
7 < 관계 연산자(보다 작은) 왼쪽에서 오른쪽으로
<= 관계 연산자(보다 작거나 같은)
> 관계 연산자(보다 큰)
>= 관계 연산자(보다 크거나 같은)
instanceof 인스턴스의 실제 타입 반환
8 == 관계 연산자(와 같은) 왼쪽에서 오른쪽으로
!= 관계 연산자(와 같지 않은)
9 & 비트 AND 연산자 왼쪽에서 오른쪽으로
10 ^ 비트 XOR 연산자 왼쪽에서 오른쪽으로
11 | 비트 OR 연산자 왼쪽에서 오른쪽으로
12 && 논리 AND 연산자 왼쪽에서 오른쪽으로
13 || 논리 OR 연산자 왼쪽에서 오른쪽으로
14 ? : 삼항 조건 연산자 오른쪽에서 왼쪽으로
15 = 대입 연산자 및 복합 대입 연산자
(=, +=, -=, *=, /=, %=, <<=, >>=, >>>=, &=, ^=, |=)
오른쪽에서 왼쪽으로

예시

int x = 10;
int y = x-- + 5 + --x;

System.out.println("x : "+ x + ", y : " + y); // x : 8, y : 23

 ① 첫 번째 감소 연산자(decrement operator)는 피연산자의 뒤쪽에 위치하므로, 덧셈 연산이 먼저 수행된다.

 ② 덧셈 연산이 수행된 후에 감소 연산이 수행됩니다. (x의 값 : 9)

 ③ 두 번째 감소 연산자는 피연산자의 앞쪽에 위치하므로, 덧셈 연산보다 먼저 수행됩니다. (x의 값 : 8)

 ④ 감소 연산이 수행된 후에 덧셈 연산이 수행됩니다.

 ⑤ 마지막으로 변수 y에 결괏값의 대입 연산이 수행됩니다. (y의 값 : 23)


'내일배움캠프 > Java 기초' 카테고리의 다른 글

정규표현식  (0) 2022.11.24
continue, break  (0) 2022.11.22
타입 변환  (0) 2022.11.17
실수의 표현 방식  (0) 2022.11.17
기본 자료형의 메모리 크기와 데이터 표현 범위  (0) 2022.11.17
Comments