[JAVA] 연산자 정리
[JAVA] 연산자 정리
By i!kohong(아이코홍)
종류 | 설명 | 연산자 |
단항 연산자 | 변수 하나에 붙이는 연산자 | ++, --, +, -, !(타입) |
산술 연산자 | 숫자 연산 / 시프트 연산 | *, /, % |
+ , - | ||
<<,>>,>>> | ||
비교 연산자 | 부등호 연산 | <,>,<=,>=,instance of |
같다 / 다르다 연산 | ==, != | |
논리 연산자 | AND / OR | &, ^, |, &&, || |
삼항 연산자 | 간단한 제어 처리 | ?, ; |
할당 연산자 | 연산의 결과를 담을 떄 사용 | = |
■ 산술 연산자
+ [더하기]
- [빼기]
* [곱하기]
/ [나누기]
% [나머지] 예시> 10 % 4 = 나머지 2
■ 자동증감 연산자
-> 별도의 연산 결과를 처리하지 않는 연산자를 의미
++x | 변수를 사용하기 전(before) 증가를 먼저 시도한다. 해당 변수의 값을 증가시키고 나머지 연산을 실행 |
int x = 10 ++x = 11 |
--x | 변수를 사용하기 전(before) 감소를 먼저 시도한다. 해당 변수의 값을 감소시키고 나머지 연산을 실행 |
int x = 10 ++x = 11 |
x++ | 변수를 사용하고 난 후(after) 증가를 시도한다. 해당 변수의 값을 연산하고 난뒤에 값을 증가시킴 |
int x = 10 x++ = 10 x = 11 |
x-- | 변수를 사용하고 난 후(after) 감소를 시도한다. 해당 변수의 값을 연산하고 난뒤에 값을 감소시킴 |
int x = 10 x-- = 10 x = 9 |
예시
int x = 5;
int y = 10;
int z = x+++ ++x + y++;
z의 값을 구하려면?
풀이
▶ x++(1)+(2) ++x(3) +(4) y++(5)
(1) x++ 값은 5가 된뒤에 1값이 증가하여, 6의 값이 된다.
(2) 6의 값과 ++x값을 더한다.
(3) ++x의 값은 1값을 먼저 증가된 뒤에 연산이 되므로 7의 값으로 적용된다.
(4) 7의 값과 y++값을 더한다.
(5) 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 | 0 | 0 | 1 | 0 |
값 : 2
■ 논리 연산자
'제어문'에서 여러 개의 조건을 검사하기 위해 사용
기호 | 설명 |
&& (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이라는 코드를 줄여서 표현