프로그래머 공간/JAVA

[JAVA] 연산자 정리

ikohong 2019. 11. 27. 16:39
728x90
반응형

[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

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이라는 코드를 줄여서 표현

 

728x90
반응형