단항의 항의 의미는 연산 실행에 필요한 값 또는 변수를 의미한다.
이항연산자는 산술, 비교, 논리
| 종류 | 기호 |
|---|---|
| 최우선 연산자 | . , [], () |
| 단항 연산자 | !, ~, +/-, ++/--, (cast) |
| 산술 연산자 | +, -, *, /, % |
| 관계 연산자 | >, <. ≤, ≥, ==, !=, instanceof |
| 비트 연산자 | &, ^, | |
| 논리 연산자 | &&, || |
| 삼항 연산자 | 조건항 ? 항1 : 항2 |
| 대입 연산자 | =, +=, *=, /=, %=, <<=, >>=, ^=, &=, |= |
| 증감 연산자 | ++/-- |
| 시프트 연산자 | <<. >>, >>> |
| 종류 | 연산방향 | 연산자 | 우선순위 |
|---|---|---|---|
| 단항 연산자 | ← | ++ -- + - ~ ! (타입) | 높음 |
| 산술 연산자 | → | * / % | | |
| → | + - | ||
| → | << >> >>> | ||
| 비교 연산자 | → | < > <= >= instanceof | |
| → | == != | ||
| 논리 연산자 | → | & | |
| → | ^ | ||
| → | | | ||
| → | && | ||
| → | || | ||
| 삼항 연산자 | → | ? : | |
| 대입 연산자 | ← | = *= /= %= += -= <<= >>= >>>= &= ^= |= | 낮음 |
기본적인 연산자이며 사칙연산과 나머지(%) 연산이 있다.
증감 연산자는 변수에 대한 연산자의 위치(앞 또는 뒤)에 따라 결과값이 달라진다.
++변수명은 “변수형=변수형+1”과 동일한 연산이다.
| 증감 연산자 | 설명 | 예시 |
|---|---|---|
| ++변수 | 선증가 연산자 | int i = 5; int j = ++i; 결과: i = 6, j = 6 |
| 변수++ | 후증가 연산자 | int i = 5; int j = i++; 결과: i = 6, j = 5 |
| --변수 | 선감소 연산자 | int i = 5; int j = --i; 결과: i = 4, j = 4 |
| 변수-- | 후감소 연산자 | int i = 5; int j = i--; 결과: i = 4, j = 5 |
값을 비교하는 연산자로 연산 결과는 true 또는 false이다.
| 연산자 | 설명 | 예시 |
|---|---|---|
| == | 비교값이 같으면 true | if (i == 1) |
| != | 비교값이 다르면 true | if (i != 1) |
| < | 왼쪽값이 오른쪽 값보다 작으면 true | if (i < 1) |
| <= | 왼쪽값이 오른쪽 값보다 작거나 같으면 true | if (i <= 1) |
| > | 왼쪽값이 오른쪽 값보다 크면 true | if (i > 1) |
| >= | 왼쪽값이 오른쪽 값보다 크거나 같으면 true | if (i >= 1) |
논리 연산자는 양쪽의 피연산자들의 boolean(true 또는 false)값만 비교할 수 있다.
삼항 연산자는 3개의 피연산자로 이루어진다.
int a = 10 > 20 ? 10 : 20; //a=20
int b = 10 < 20 ? 10 : 20; //a=10
int x = 10;
int r = x ≥ 0 ? x : -x; //r=10
대입 연산자(=)는 오른쪽 피연산자의 값이나 연산 결과를 왼쪽 변수에 대입하는 연산자
| 대입 연산자 | 대입 축약 형태 |
|---|---|
| i += 3 | i = i + 3 |
| i -= 3 | i = i - 3 |
| i *= 3 | i = i * 3 |
| i /= 3 | i = i / 3 |
| i %= 3 | i = i % 3 |
| i &= j | i = i & j |
| i |= j | i = i | j |
| i <<= 3 | i = i << 3 |
| i >>= 3 | i = i >> 3 |
| i >>>= 3 | i = i >>> 3 |
| i *= 10+j | i = i * (10+j) |
비트 연산자는 비트 단위의 연산자로 AND(&), XOR(^), NOT(~)이 있다.
논리 연산자와 비슷하지만, bit 단위로 논리 연산을 할 때 사용하는 연산자다.
비트 연산시 연산 최소단위인 4byte로 변환된다(byte, short → int).
| x | y | x|y | x&y | x^y |
|---|---|---|---|---|
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 0 | 1 |
| 0 | 0 | 0 | 0 | 0 |
시프트 연산자는 정수형 변수에만 사용가능한데, 피연산자의 각 자리(2진수)를 오른쪽 또는 왼쪽으로 이동(shift)해서 시프트 연산자라고 한다.