연산자
할당 연산자
- 일반 할당(=) : x = y 꼴에서 x에 y를 할당한다.
- 더하기 복합 대입 연산(+=) : x += y 꼴에서 x와 y를 더한 값을 x에 재할당. x = x + y와 같다.
- 빼기 복합 대입 연산(-=) : x -= y 꼴에서 x에 y를 뺀 값을 x에 재할당. x = x - y와 같다.
- 곱하기 복합 대입 연산(*=) : x *= y 꼴에서 x와 y를 곱한 값을 x에 재할당. x = x * y와 같다.
- 나누기 복합 대입 연산(/=) : x /= y 꼴에서 x와 y를 나눈 몫을 x에 재할당. x = x / y와 같다.
- 나머지 복합 대입 연산(%=) : x %= y 꼴에서 x와 y를 나눈 나머지를 x에 재할당. x = x % y와 같다.
비교 연산자
동등(==) : x == y 꼴에서 x와 y가 가진 스택 값이 같은가의 여부
부등(!=) : x != y 꼴에서 x와 y가 가진 스택 값이 다른가의 여부
초과(>) : x > y 꼴에서 x가 y보다 큰가의 여부
미만(<) : x < y 꼴에서 x가 y보다 작은가의 여부
이상(>=) : x >= y 꼴에서 x가 y보다 큰거나 같은의 여부
이하(<=) : x <= y 꼴에서 x가 y보다 작거나 같은가의 여부
산술 연산자
- 더하기(+) : x + y 꼴에서 x와 y를 더한 값. 단, 피연산자 중 하나 이상이 문자열일 경우 문자열 합치기 수행
- 빼기(-) : x - y 꼴에서 x와 y를 뺀 값.
- 곱하기(*) : x * y 꼴에서 x와 y를 곱한 값.
- 나누기(/) : x / y 꼴에서 x와 y를 나눈 몫.
- 나머지(%) : x % y 꼴에서 x와 y를 나눈 나머지.
- 단항 양수(+) : +x 꼴에서 변수 x의 부호 강조
- 단항 음수(-) : -x 꼴에서 변수 x의 부호 반전
- 증가(++)
전위 증가 : ++x 꼴에서 실행 전 x에 1을 더한다
후위 증가 : x++ 꼴에서 실행 후 x에 1을 더한다
- 감소(--)
전위 감소 : --x 꼴에서 실행 전 x에 1을 뺀다
후위 감소 : x-- 꼴에서 실행 후 x에 1을 뺀다
논리 연산자
- 논리 AND(&&) : x && y 꼴에서 x와 y가 모두 참(true)인가의 여부
- 논리 OR(||) : x || y 꼴에서 x와 y 중 하나가 참인가의 여부
- 논리 NOT(!) : !x 꼴에서 x의 논리를 부정(반전)한다
삼항 연산자
- ( ? : ) : c ? t : f 꼴에서 조건 c가 참이면 t, 거짓이면 f
기타 연산자
- 괄호 연산자(()) : 사용자가 원하는 일부 연산을 우선 처리하기 위해 사용
- 대괄호 연산자([]) : 배열이 가진 인자에 접근하기 위해 사용.
- 멤버 액세스 연산자(.) : x.y 꼴에서 x가 가진 멤버 y에 접근하기 위해 사용
- 단항 형 변환((T)) : (T)x 꼴에서 x의 타입을 T로 강제 변환하기 위해 사용한다.
- 타입 비교(instanceof) : x instanceof T 꼴에서 값 x가 타입 T로 형변환될 수 있는가의 여부
- 객체화(new) : new T 꼴에서 참조 타입 T를 객체화한 객체이다.
- 메서드 호출(()) : m(a) 꼴에서 메서드 m을 호출한다. 경우에 따라 a에 인자를 전달한다.
연산자의 우선순위
- 연산자 사이에는 연산되는 우선순위가 있으며 아래는 숫자가 작을 수록 우선 순위가 높다는 의미이다.(1번이 가장 높은 우선순위)
1. 멤버 액세스, 인자 접근(., [])
2. 우선 연산, 형 변환, 객체화, 메서드 호출((), (T), new, ())
3. 증감, 단항 양수, 단항 음수, 부정(++, --, +, -, !)
4. 곱하기, 나누기, 나머지(*, /, %)
5. 더하기, 빼기(+, -)
6. 초과, 미만, 이상, 이하, 타입 비교(>, <, >=, <=, instanceof)
7. 동등, 부등(==, !=)
8. 논리 AND(&&)
9. 논리 OR(||)
10. 삼항 연산(?:)
11. 할당, 복합 대입 연산(=, +=, -=, *=, /=, %=)