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 값을 채운다

 

연산자 우선순위

산술 연산자 > 비교 연산자 > 논리 연산자 > 대입 연산자

단항 > 이상 > 삼항

연산의 진행방향은 기본적으로 왼쪽에서 오른쪽으로 수행된다.

단, 단항 연산자와 대입 연산자의 경우 오른쪽에서 왼쪽으로 수행된다.

 

명칭 연산자
괄호 (), []
부정, 증감 연산자 !, ~, ++, --
곱셈, 나눗셈 *, /, %
덧셈, 뺄셈 +, -
비트 연산자(이동) <<, >>, >>>
관계 연산자(비교) <, ≤, >, ≥
관계 연산자(동등 비교) ==, !=
비트 연산자(논리) &
  ^
  |
논리 연산자 &&
  ||
  ? :
대입 연산자 =, +=, -=, *=, /=, <<=, >>=, >>>=, &=, ^=, ~=