1. 연산자 종류
연산자 종류 |
연산자 |
피연산자 수 |
산출값 |
설명 |
산술 연산 |
+, -, *, /, % |
이항 |
숫자 |
사칙연산 및 나머지계산 한다. |
부호 |
+, - |
단항 |
숫자 |
음수 / 양수 부호 |
문자열 |
+ |
이항 |
문자 |
두 문자를 연결시킨다. |
대입 연산 |
=, +=, -=, *=, /=, %= &=, ^=, |=, <<=, >>=, >>>= |
이항 |
다양 |
우변의 값을 좌변의 변수에 대입 |
증감 연산 |
++, -- |
단항 |
숫자 |
1만큼 증가 / 감소 |
비교 연산 |
==, !=, <, >, <=, >=, instanceof |
이항 |
boolean |
값의 비교 |
논리 연산 |
!, &, |, &&, || |
이항 단항 |
boolean |
논리적 NOT, AND, OR 연산 |
조건 연산 |
(조건식) ? A : B |
삼항 |
다양 |
조건식에 따라 참이면 A, 거짓이면 B 선택 |
비트 |
~, &, |, ^ |
단항 이항 |
숫자 boolean |
비트 NOT, AND, OR, XOR 연산 |
비트 쉬프트 |
>>, <<, >>> |
이항 |
숫자 |
비트를 좌 / 우측으로 밀어서 이동 |
- 연산식은 반드시 하나의 값을 산출한다.
따라서 하나의 값이 올 수 있는 자리에는 값 대신 연산식을 사용할 수 있다.
int result = x + y;
- 연산식은 다른 연산식의 피연산자 위치에 올 수 있다.
boolean result = (x + y) < 5;
x, y를 더해서 5보다 작으면 true 크거나 같으면 false 가 result에 저장된다.
2. 연산 방향과 우선순위
산술 연산식에서 덧셈, 뺄셈 보다 곱셈, 나눗셈 연산자가 우선 처리된다.
우선순위 |
연산자 |
피연산자 |
연산 방향 |
0 |
( ) 괄호 속 연산자 |
다양 |
- |
1 |
증감 ( ++, -- ), 부호 ( +, - ), 비트 ( ~ ), 논리 ( ! ) |
단항 |
← |
2 |
산술 ( *. / % ) |
이항 |
→ |
3 |
산술 ( +, - ) |
이항 |
→ |
4 |
쉬프트 ( >>, <<, >>> ) |
이항 |
→ |
5 |
비교 ( <, >, <=, >=, instanceof) |
이항 |
→ |
6 |
비교 ( ==, != ) |
이항 |
→ |
7 |
논리 & |
이항(단항) |
→ |
8 |
논리 ^ |
이항(단항) |
→ |
9 |
논리 | |
이항(단항) |
→ |
10 |
논리 && |
이항 |
→ |
11 |
논리 || |
이항 |
→ |
12 |
조건 ( ? : ) |
삼항 |
→ |
13 |
대입 |
이항 |
← |
ex) x > 0 && y < 0
> , < 비교 연산이 먼저 수행된 후 && 연산이 처리되어 최종 값이 반환된다.
연산자 우선순위가 같으면, 연산 방향에 따라 달라진다.
ex) 100 * 2 / 3 % 5
모든 연산자들이 우선순위가 같다. 연산 방향이 왼쪽에서 오른쪽이므로
*, /, % 순으로 진행된다. (결과값 1)
ex) a = b = c = 5;
모두 대입 연산자 이므로 연산 방향이 오른쪽에서 왼쪽으로 진행된다.
c = 5, b = c, a = b 순으로 진행된다. (a, b, c 모든 변수에 5 대입된다.)
* 정리
- 단항, 이항, 삼항 연산자 순으로 우선순위를 갖는다.
- 산술, 비교, 논리, 대입 연산자 순으로 우선순위를 갖는다.
- 단항과 대입 연산자를 제외한 모든 연산 방향은 왼쪽에서 오른쪽이다. ( → )
- 복잡한 연산식에는 ( ) 괄호 사용해서 우선순위를 정해준다.
'Java 기본 문법 - 참조 서적 [이것이 자바다 - 한빛미디어] > 1. 변수, 기본 데이터 타입, 연산자' 카테고리의 다른 글
6. Java 자바 - 이항 연산자, 삼항 연산자 (0) | 2020.04.24 |
---|---|
5. Java 자바 - 단항 연산자 (0) | 2020.04.24 |
3. Java 자바 - 자동 타입 변환, 강제 타입 변환 (2) | 2020.04.21 |
2. Java 자바 - 기본 데이터 타입 (0) | 2020.04.20 |
1. Java 자바 - 변수와 리터럴 (1) | 2020.04.20 |