| 연산자(Operator) | 어떠한 기능을 수행하는 기호(+,-,*,/ 등) |
|---|---|
| 피연산자(Operand) | 연산자의 작업 대상(변수,상수,리터럴,수식) |
| 단항연산자 | : + - (타입) ++ – ~ ! |
|---|---|
| 이항연산자 | 산술 : + - * / % << >> >>> 비교 : > < > = <= == != 논리 : && || & ^ |
| 삼항연산자 | ? : |
| 대입연산자 | = |
| 단항 > 이항 | -x + 3 |
|---|---|
| 곱셈,나눗셈 > 덧셈, 뺄셈 | x + 3*y |
| 산술 > 비교 | x+3 > y-2 |
| 비교 > 논리 | x>3 && x<5 |
| 대입은 항상 맨 끝에 | int i = x + y*3 |
<, >>, >>>는 덧셈연산자보다 우선순위가 낮다. < 2 + 1</color> : <color red>x << (2 + 1)</color> 과 같다.| 증가연산자(++) | 피연산자의 값을 1 증가시킨다. |
|---|---|
감소연산자(--) | 피연산자의 값을 1 감소시킨다. |
| 전위형 | j = ++i; | ++i; j = i; | 값이 참조되기 전에 증가시킨다 | j=6 i=6 |
|---|---|---|---|---|
| 후위형 | j = i++; | j = i; ++i; | 값이 참조된 후에 증가시킨다 | j=5 i=6 |
| 부호연산자(+,-) | ‘+’는 피연산자에 1을 곱하고 ‘-’는 피연산자에 -1을 곱한다 |
|---|---|
| 논리부정연산자(!) | true는 false로, false는 true로 피연산자가 boolean일 때만 사용가능 |
<color blue> 이항연산자는 연산을 수행하기 전에 피연산자의 타입을 일치시킨다. </color>
10 % 8 → 2 10 % -8 → 2 -10 % 8 → -2 -10 % -8 → -2
< n 은 x * 2n과 같다. 8 << 2 는 8 * 22과 같다.
> n 은 x / 2n과 같다. 8 >> 2 는 8 / 22과 같다.
| OR연산자 | | | 피연산자 중 어느 한 쪽이 1이면 1이다. |
|---|---|---|
| AND연산자 | & | 피연산자 양 쪽 모두 1이면 1이다. |
| XOR연산자 | ^ | 피연산자가 서로 다를 때 1이다. |
| 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 |
| OR연산자 | || | 피연산자 중 어느 한 쪽이 true이면 true이다. |
|---|---|---|
| AND연산자 | && | 피연산자 양 쪽 모두 true이면 true이다. |
| x | y | x || y | x && y |
|---|---|---|---|
| true | true | true | true |
| true | false | true | false |
| false | true | true | false |
| false | false | false | false |
(조건식) ? 식1 : 식2
int x = -10; int absX = x >= 0 ? x : -x;
아래의 조건문과 동일하다.
if(x>=0) {
absX = x;
} else {
abxX = -x;
}