■ Java Operator(연산자)
- 연산자(Operator) : 연산에 사용되는 표시나 기호
- 피연산자(Operand) : 연산되는 데이터
- 연산식(Expression) : 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것
1. 산술 연산자(Arithmatic Operators)
연산자 | 설명 |
+ | 두 피연산자의 합 |
- | 두 피연산자의 차 |
* | 두 피연산자의 곱 |
/ | 두 피연산자의 나눈 몫 |
% | 두 피연산자의 나눈 나머지(Modulus) |
* 주의사항
1) 실수 연산
System.out.println((6.0 - 5.9) * 10); // 1이 아닌 0.99999가 나온다.
- 정확하게 계산해야 할 때는 부동소수점(실수) 타입을 사용하지 않는 것이 좋다. 실수 타입은 정확히 표현할 수 없어 근사치로 처리하기 때문이다. 정확한 계산이 필요하다면 정수 연산으로 변경한 뒤 연산해야 된다.
2) Overflow
System.out.println(Integer.MAX_VALUE / 2 * 3); // Overflow
System.out.println(Integer.MAX_VALUE + 1);
- MAX_VALUABLE 또는 MIN_VALUABLE의 값을 넘는 경우, Overflow 발생
- Overflow는 메모리가 표현할 수 있는 값을 넘는 경우를 말한다.
3) /, % 연산
- A / 0 => ArithmeticException 발생
- A % 0 => ArithmeticException 발생
- A / 0.0 => Infinity(무한대)
- A % 0.0 => NaN(Not a Number)
2. 대입 연산자(Assignment Operators)
연산자 | 설명 |
= | 우측 피연산자의 값을 좌측 피연산자에 할당 |
+= | a += b, a = a + b |
-= | a -= b, a = a - b |
*= | a *= b, a = a * b |
/= | a /= b, a = a / b |
%= | a %= b, a = a % b |
3. 비교 연산자(Comparison Operators)
연산자 | 설명 |
< | a < b, a가 b보다 작은가? |
> | a > b, a가 b보다 큰가? |
<= | a <= b, a가 b보다 작거나 같은가? |
>= | a >= b, a가 b보다 크거나 같은가? |
== | a == b, a가 b와 같은가? |
!= | a != b, a가 b와 다른가? |
4. 논리 연산자(Logical Operators)
연산자 | 설명 |
& | AND |
| | OR |
! | NOT |
^ | XOR |
&& | AND, Short Circuit |
|| | OR, Short Circuit |
* Short Circuit Evaluation
- 앞의 조건에 따라 뒤의 조건은 확인하지 않아, 불필요한 연산을 줄여 효율적이다
- 논리 곱(&&)은 두 항이 모두 true일 때만 결과가 true
: 앞의 항이 false 이면 뒤 항의 결과를 평가하지 않아도 false임
- 논리 합(||)은 두 항이 모두 false 일 때만 결과가 false
: 앞의 항이 true 이면 뒤 항의 결과를 평가하지 않아도 true임
5. 증감 연산자(Increment and Decrement Operators)
연산자 | 설명 |
++ (Prefix) | 피연산자의 값을 1 증가한 후, 연산식 평가 |
++ (Postfix) | 연산식을 평가한 후에 피연산자의 값을 1 증가 |
-- (Prefix) | 피연산자의 값을 1 감소시킨 후, 연산식 평가 |
-- (Postfix) | 연산식을 평가한 후에 피연산자의 값을 1 감소 |
6. 삼항 연산자(Ternary Operator)
연산자 | 설명 |
(condition) ? (true) : (false) | (condition)이 true이면 (true) 연산을 리턴, false이면 (false) 연산을 리턴 |
7. 비트 연산자(Bitwise Operators)
• 논리 비트 연산자
연산자 | 설명 |
& | Bitwise AND |
| | Bitwise OR |
~ | Bitwise INV |
^ | Bitwise XOR |
• 이동 비트 연산자
연산자 | 설명 |
<< | 좌측 피연산자의 각 비트를 왼쪽으로 우측 피연산자만큼 이동시킨다. 빈자리는 0으로 채운다. |
>> | 좌측 피연산자의 각 비트를 오른쪽으로 우측 피연산자만큼 이동시킨다. 빈자리는 Sign Bit로 채운다. |
>>> | 좌측 피연산자의 각 비트를 오른쪽으로 우측 피연산자만큼 이동시킨다. 빈자리는 0으로 채운다. |
'Coding > Java' 카테고리의 다른 글
Java Loops(반복문) (0) | 2020.09.16 |
---|---|
Java Conditional(조건문) (0) | 2020.09.16 |
Java - Thread (0) | 2020.08.26 |
Java Variable & Data Type (0) | 2020.07.02 |
Java 개발 환경 구축 및 컴파일 과정 (0) | 2020.06.29 |