프로그래머 공간/JAVA
[Java] 연산자 정리
ikohong
2021. 1. 21. 07:55
728x90
반응형
[Java] 연산자 정리
종류 | 설명 | 연산자 |
단항 연산자 | 변수 하나에 붙이는 연산자 | ++, --, +, -, !(타입) |
산술 연산자 | 숫자 연산 / 시프트 연산 | *,/,% |
+,- | ||
<<,>>,>>> | ||
비교 연산자 | 부등호 연산 | <,>,<=,>=, instance of |
같다 / 다르다 연산 | ==,!= | |
논리 연산자 | AND / OR | &,^,|,&&,|| |
삼항 연산자 | 간단한 제어 처리 | ?,: |
할당 연산자 | 연산의 결과를 담을 때 사용 | = |
산술 연산자
+ | 더하기 |
- | 빼기 |
* | 곱하기 |
/ | 나누기 |
% | 나머지 예시 > 10 % 4 = 2 (나머지 값이 2) |
자동증감 연산자
▶ 별도의 연산 결과를 처리하지 않는 연산자를 의미
++x | 변수를 사용하기 전(before) 증가를 먼저 시도한다. 해당 변수의 값을 증가시키고 나머지 연산을 실행 |
--x | 변수를 사용하기 전(before) 감소를 먼저 시도한다. 해당 변수의 값을 감소시키고 나머지 연산을 실행 |
x++ | 변수를 사용하고 난 후(after) 증가를 시도한다. 해당 변수의 값을 연산하고 난뒤에 값을 증가시킴 |
x-- | 변수를 사용하고 난 후(after) 감소를 시도한다. 해당 변수의 값을 연산하고 난뒤에 값을 감소시킴 |
자동증감 연산자 예시
int x = 5;
int y = 10;
int z = x+++ ++x + y++;
▶ z의 값을 구하려면?
※ 계산법 : x++(1)+(2) ++x(3) +(4) y++(5)
- x++ 값은 5가 된뒤에 1값이 증가하여, 6의 값이 된다.
- 6의 값과 ++x값을 더한다
- ++x 의 값은 1의 값을 먼저 증가한 뒤에 연산이 되므로 7의 값으로 적용이 된다.
- 7의 값과 y++값을 더한다.
- y++의 값은 10이 된 다음, 1의 값을 증가하는 관계이지만, 뒤에 연산할 식이 없으므로, 10으로 남는다. 따라가 5 + 7 + 10이므로 22의 결과 값이 나온다.
동등 비교(Equality) 및 관계(Relational) 연산자
x > y | [x값이 y값보다 크다] |
x < y | [x값이 y값보다 작다] |
x >= y | [x값이 y값보다 크거나 같다.] |
x <= y | [x값이 y값보다 작거나 같다.] |
x == y | x 와 y 변수의 내용물이 같으면 true를 반환한다. |
x != y | x 와 y 변수의 내용물이 같지 않으면 (NOT) true를 반환한다. |
비트 연산자
컴퓨터가 쉽게 이해하는 연산기호로 개발자가 직접 비트(Bit)를 조작하면 연산이 빨라지는 장점이 있다.
| (OR) | 양쪽 데이터의 비트의 값을 OR 조건으로 따져서 한쪽 bit가 1이면 무조건 1의 결과를 낸다. |
& (AND) | 양쪽의 비트가 모두 1이면 1이고, 아니면 0의 결과를 낸다. |
^ (XOR) | 양쪽의 비트가 서로 다른 비트면 1이고, 아니면 0의 결과를 낸다. |
비트 연산자 예시
int x = 10;
int y = 7;
1) x | y
2⁷ | 2⁶ | 2⁵ | 2⁴ | 2³ | 2² | 2¹ | 2⁰ | |
10진수 3 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
10진수 2 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
10 | 7 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
값 : 15
2) x & y
2⁷ | 2⁶ | 2⁵ | 2⁴ | 2³ | 2² | 2¹ | 2⁰ | |
10진수 3 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
10진수 2 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
10 | 7 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
값 : 2
3) x^y
2⁷ | 2⁶ | 2⁵ | 2⁴ | 2³ | 2² | 2¹ | 2⁰ | |
10진수 3 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
10진수 2 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
10 | 7 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
값 : 13
논리 연산자
▶ '제어문'에서 여러 개의 조건을 검사하기 위해 사용
기호 | 설명 |
&& (AND) | 'X && Y' → X 와 Y 조건 둘다 'true'인 경우에 'true'로 판단함 |
|| (OR) | 'X || Y' → X 또는 Y 둘중 하나라도 'true'면 'true'로 판단함. 만일 앞이 true면 뒤는 검사를 하지 않음 |
삼항 연산자
▶ '?'을 이용해서 표현을 하며, if ~else구문과 같은 의미라고 생각을 하면 된다.
삼항 연산자 예시
int a = 10;
char c =
a == 10? 'O' : 'X';
System.out.println(c);
※ a의 값이 10이면 O, a의 값이 10이 아니면 X가 표시가 된다.
할당 연산자
▶ '할당'이라는 확실한 의미가 있는 연산자. JAVA에서 변수처리는 데이터를 복사한다는 개념만 있으며, 할당 연산자는 연산자 응용을 통해 좀더 간결한 소스 코드를 만들수 있다. (+=, -=)
할당 연산자 예시
int x = 10;
※ x 상자안에 10이라는 데이터를 할당합니다.
int x = y;
※ x 상자안에 y안에 있는 데이터를 꺼내 복사(Copy)해서 할당을 한다.
a += 100
※ a = a + 100이라는 코드를 줄여서 표현
a -= 100
※ a = a - 100이라는 코드를 줄여서 표현
728x90
반응형