본문 바로가기
프로그래밍 언어/JAVA

[JAVA] 연산자 (단항연산자/산술연산자/시프트연산자/비교연산자/논리연산자/조건연산자/대입연산자)

by 느링 2017. 7. 19.

연산자

 

연산 연산을 수행하는 기호

피연산자 연산에 참여하는 변수나 상수 값

 

 

단항 연산자

 

1) 논리 부정 연산자 ( ! )

boolean형의 결과값을 부정하는 연산자입니다.

바꾸고 싶은 연산자 앞에 '!'부호를 넣어주면 자동으로 연산자의 속성이 바뀝니다.

'!'연산기호를 사용해 긍정(True) → 부정(False)으로, 부정(False) → 긍정(True)으로 바꿀 수 있습니다.

또한 조건문과 반복문의 조건식에 사용되며 조건식을 좀 더 효율적으로 만들 수 있다는 장점을 가지고 있습니다.

 

<예제 1>

 

2) 비트 부정 연산자 ( ~ )

숫자에서 비트 단위를 모두 부정하는 연산자입니다.

비트가 1 → 0 으로 0 → 1로 변경되는 것입니다.

ex) 정수 4

비트 값 : 0100 → 1011

 

3) 부호 연산자

부호 연산자에는 +,-가 있습니다.

boolean과 char를 제외한 기본형 타입에서 쓸 수 있습니다.

 

<예제 1>

 

4) 증감연산자

++ i → 선증가

- - i → 선감소

i ++ → 후증가

i - - → 후감소

선증가(증가시킨 후 연산을 하는가)

후증가(연산을 한 후에 증가를 시키는가)

BUT, 단독으로 쓰였을 때는 값이 같습니다.

 

<예제 1>

 

<예제 2>

 

산술연산자

산술연산자란 쉽게 말해서 사칙연산이라고 생각하시면 됩니다.

 

<예제 1>

 

시프트연산자

시프트 연산자란 말 그대로 bit를 shift 시켜주는 것입니다.

<< 왼쪽으로 이동, 새로 생긴 칸은 0으로 채움

>>오른쪽으로 이동, 새로 생긴 칸은 음수의 경우 1양수의 경우 0으로 채움

>>> 새로 생긴칸은 무조건 0으로 채움

좀 더 쉽게 말하자면

'A << 2' 라는 수식이 있을 때,

A 라는 녀석의 비트 값을 2 만큼 왼쪽으로 이동시키겠다는 것입니다.

 

<예제 1>

A

5 << 2 연산

0 0 0 0 0 1 0 1

0 0 0 1 0 1 0 0  왼쪽으로 2칸 이동 = 20

 

5 >> 3 연산

0 0 0 0 0 1 0 1

0 0 0 0 0 0 0 0  오른쪽으로 3칸 이동 = 0

 

5 >>> 4 연산

0 0 0 0 0 1 0 1

0 0 0 0 0 0 0 0  오른쪽으로 4칸 이동 = 0

 

B

-3 << 2 연산

1 1 1 1 1 1 0 1

1 1 1 1 0 1 0 0  왼쪽으로 2칸 이동 = -12

 

-3 >> 3 연산

1 1 1 1 1 1 0 1

1 1 1 1 1 1 1 1  오른쪽으로 3칸 이동 = -1

 

-3 >>> 4 연산

1 1 1 1 1 1 0 1

0 0 0 0 1 1 1 1  오른쪽으로 4칸 이동 = 15

Q. 268435455가 나오는 이유는 자바에서 시프트 연산을 할 때 int 이하의 자료형에서 시프트 연산이 일어날 경우 자동으로 int형 변수로 변환하여 시프트 연산을 하게 됩니다.

그래서 short로 하든, byte로 하든 결국엔 int로 변하게 됩니다.

 

비교연산자

1) <, > 초과와 미만을 구분합니다.

2) <=, >= 이상과 이하를 구분합니다.

3) !=

ex) a != b a와 b가 다를 때를 말합니다.

4) ==

ex) a == b a와 b가 같을 때를 말합니다.

 

논리연산자

 논리 연산자는 &&(AND), ||(OR), !(NOT) 3개로 이루어져 있으며, 반드시 결과가 참(True)과 거짓(False)로 이루어져 있어야 합니다.

1) && (AND) : 모두 참(True)인 경우만 참 나머지는 거짓(False)

2) || (OR) : 모두 참(True)이거나 둘중 하나만 참(True)이여도 참

3) ! (NOT) : 논리 값과 반 (참 → 거짓, 거짓 → 참)

 

<예제 1>

1번 &&(AND연산) 둘 다 참이어야 참, 하나라도 거짓이면 거짓

num1(10)이 20보다 작고(참), num2(20)가 5보다 크다.(참)

둘 다 참이므로 → True

 

2번 ||(OR연산) 하나만 참이면 참, 둘 다 거짓이어야 거짓

num1(10)이 20보다 작으며(참), num2(20)가 30보다 크다.(거짓)

하나만 참이어도 참이므로 → True

 

3번 ! (NOT연산) 논리 값과 반대

원래 논리 값이 True이므로 → False

 

▶조건 연산자

조건 연산자는 삼항 연산자라고도 합니다.

기본 식이

code1?code2:code3 이며

code1의 식이 참이면 code2의 값이 출력되고

code1의 식이 거짓이면 code3의 값이 출력됩니다.

 

<예제 1>

 

 

복합 대입 연산자

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

 

<예제 1>

 

'프로그래밍 언어 > JAVA' 카테고리의 다른 글

[JAVA] 반복문(1) while문  (0) 2017.07.21
[JAVA] 조건문 (2) switch문  (0) 2017.07.19
[JAVA] 조건문 (1) if문  (0) 2017.07.19
[JAVA] 변수와 자료형  (0) 2017.07.15
[JAVA] 자바란?  (0) 2017.07.15