Java
[JAVA] 자바의 연산자
hazel__
2022. 2. 7. 20:00
항과 연산자
항(operand)
연산에 사용하는 값
연산자(operator)
항을 이용하여 연산하는 기호
연산자
대입 연산자(=)
assignment operator
변수에 다른 변수나 값을 대입하는 연산자
이항 연산자 중 우선순위가 가장 낮은 연산자
왼쪽 변수 = 오른쪽 변수
a = 10;
부호 연산자(+, -)
단항 연산자
실제 변수의 부호가 변하려면 대입 연산자를 사용해야 한다.
-10, +10
산술 연산자(+, -, *, /, %)
사칙 연산자
연산자 | 기능 | 예제 |
+ | 더하기 | a + b |
- | 빼기 | a - b |
* | 곱하기 | a * b |
/ | 몫 | a / b |
% | 나머지 | a % b |
복합 대입 연산자(+=, -=, *=, /=, %=, <<=, >>=, >>>=, &=, !=, ^=)
대입 연산자와 다른 연산자가 함께 쓰인다.
연산자 | 기능 | 예제 |
+= | 더하기 | a += 2 → a = a + 2 |
-= | 빼기 | a -= 2 → a = a - 2 |
*= | 곱하기 | a *= 2 → a = a * 2 |
/= | 나누기(몫) | a /= 2 → a = a / 2 |
%= | 나누기(나머지) | a %= 2 → a = a % 2 |
<<= | 비트 이동(왼쪽) | a <<= 2 → a = a << 2 |
>>= | 비트 이동(오른쪽, 왼쪽에 부호비트가 채워진다) | a >>= 2 → a = a >> 2 |
>>>= | 비트 이동(오른쪽, 왼쪽에 0이 채워진다) | a >>>= 2 → a = a >>> 2 |
&= | & 비트 연산(and) | a &= 2 → a = a & 2 |
!= | ! 비트 연산(not) | a != 2 → a = a ! 2 |
^= | ^ 비트 연산(xor) | a ^= 2 → a = a ^ 2 |
증감 연산자(++, --)
단항 연산자
변수의 값을 1 더하거나 뺄때 사용한다.
연산자의 위치에 따라 연산 시점과 결과가 달라진다.
연산자 | 기능 | 예제 |
++ | 1 더하기 | a++; ++a; |
-- | 1 빼기 | a--; --a |
관계 연산자(>, <, ≥, ≤, ==, ≠)
이항 연산자, 비교 연산자
연산의 결과가 참(true), 거짓(false)로 반환된다.
연산자 | 기능 | 예제 |
> | 왼쪽이 크면 참, 아니면 거짓 | a > b |
< | 오른쪽이 크면 참, 아니면 거짓 | a < b |
>= | 왼쪽이 크거나 같으면 참, 아니면 거짓 | a >= b |
<= | 오른쪽이 크거나 같으면 참, 아니면 거짓 | a <= b |
== | 두 항의 값이 같으면 참, 아니면 거짓 | a == b |
!= | 두 항의 값이 다르면 참, 아니면 거짓 | a != b |
논리 연산자(&&, ||, !)
관계 연산자와 혼합하여 사용된다.
연산의 결과가 참(true), 거짓(false)로 반환된다.
연산자 | 기능 | 예제 |
&&(논리 곱) | 두 항이 모두 참이면 참, 아니면 거짓 | (5 > 3) && (5 < 3) |
||(논리 합) | 두 항 중 하나만 참이면 참, 아니면 거짓 | (5 > 3) || (5 < 3) |
! (부정) | 단항 연산자. 참이면 거짓, 거짓이면 참 | !(5 > 2) → false |
단락 회로 평가(short circuit evaluation)
- 논리 곱(&&)은 두 항의 결과가 모두 참일 때 참이다 → 앞의 항의 결과가 거짓이면, 뒤의 결과를 확인하지 않는다.
- 논리 합(||)은 두 항의 결과가 모두 거짓일 때 참이다 → 앞의 항의 결과가 참이면, 뒤의 항의 결과를 확인하지 않는다.
조건 연산자
삼항 연산자
조건식의 결과가 참인 경우와 거짓인 경우에 따라 다른 결과가 수행된다.
조건문을 간단히 표현할 때 사용할 수 있다.
연산자 | 기능 | 예제 |
조건식 ? 참 결과 : 거짓 결과 | 조건이 참이면 참 결과를 실행하고, 거짓이면 거짓 결과를 실행한다. | 5 > 3 ? 10 : 20 → 10 |
비트 연산자(~, &, |, ^, <<, >>, >>>)
대입 연산자와 다른 연산자가 함께 쓰임
연산자 | 기능 | 예제 |
~ | 비트의 반전(1의 보수) | a = ~a |
& | 비트 단위 AND | 1 & 1 → 1 |
| | 비트 단위 OR | 0 | 0 -> 0 |
^ | 비트 단위 XOR | 서로 다른 경우 1을 반환 |
<< | 비트 왼쪽 이동(shift) | a << 2 |
>> | 비트 오른쪽 이동(shift) | a >> 2 |
>>> | 비트 오른쪽 이동(shift) | a >>> 2 → 왼쪽 비트에 0 값을 채운다 |
연산자 우선순위
산술 연산자 > 비교 연산자 > 논리 연산자 > 대입 연산자
단항 > 이상 > 삼항
연산의 진행방향은 기본적으로 왼쪽에서 오른쪽으로 수행된다.
단, 단항 연산자와 대입 연산자의 경우 오른쪽에서 왼쪽으로 수행된다.
명칭 | 연산자 |
괄호 | (), [] |
부정, 증감 연산자 | !, ~, ++, -- |
곱셈, 나눗셈 | *, /, % |
덧셈, 뺄셈 | +, - |
비트 연산자(이동) | <<, >>, >>> |
관계 연산자(비교) | <, ≤, >, ≥ |
관계 연산자(동등 비교) | ==, != |
비트 연산자(논리) | & |
^ | |
| | |
논리 연산자 | && |
|| | |
? : | |
대입 연산자 | =, +=, -=, *=, /=, <<=, >>=, >>>=, &=, ^=, ~= |