연산자(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; }