Day03 - 2항 연산자 정의 및 종류 / 3항 연산자

2021. 2. 17. 17:20JAVA 공부

2항 연산자 정의

 

안녕하세요 ㅎㅎㅎㅎㅎㅎㅎㅎㅎ

이번에는 2항 연산자에 대해 알아 봅시다

 

2항 연산자란?

피 연산자가 2개인 연산자를 의미합니다 ( 항이 2개 )

 

2항 연산자 종류

 

1. 산술 연산자 ( + , - , * , / , % )

+ 는 더하기 , -는 빼기 *는 곱하기 , /는 나눗셈의 몫 , %는 나눈다음 나머지를 뜻합니다.

산술 연산자는 , 학교에서 가르쳐주는 기본적인 수학이기 때문에 더 이상 설명하지 않겠습니다.

 

2. 비교 연산자 ( <, <=, >, >=, ==, != )

x < y - x보다 y가 크다

x <= y - x보다 y가 크거나 같다

x > y - x가 y보다 크다

x >= y - x가 y보다 크거나 같다

x == y - x와 y가 같다              ( =는 대입 , ==는 같다 입니다.)

x != y - x와 y가 같지 않다.

 

이런 식으로 사용할 수 있고, 결과값은 boolean 형 true , false가 반환이 됩니다.

 

3. 비트 연산자 ( &, |, ^ )

비트 연산자는 두 수를 각각 2진수로 변환하여 각 비트 연산을 수행합니다

& (비트곱): 두 비트가 1일 때 1, 나머지는 0. - and
| (비트합): 두 비트 중 하나 이상이 1이면 1, 두 비트 모두 0이면 0. - or
^ (xor 배타적 논리합): 두 비트가 다르면 1, 같으면 0. - xor

잘 사용하지 않는다고 하네요. 하지만 알아두긴 해야한다고 합니다

 

4. 비트 이동 연산자 ( <<, >> )

왼쪽 항의 값을 2진수로 변환하여 오른쪽 항의 값만큼 (<<) 왼쪽으로, (>>) 오른쪽으로  이동시키는 연산을 수행합니다

 이것도 웹을 만들 때는 잘 사용하지 않지만, 컴퓨터가 인식하는 연산 중에서는 빠른 속도로 연산이 가능해 쓰는 곳도 있다고 합니다.

 

5. 논리 연산자 ( &, |, &&, || )

논리 연산자는 boolean의 형태로 true 와 false . 2가지 중 1개를 반환하는 연산입니다.

& - 왼쪽 항의 값이 true 그리고(and) 오른쪽 항의 값이 true 일 경우 true 반환 , 그 외는 false를 반환 합니다.

| - 왼쪽 항의 값 또는(or) 오른쪽 항의 값이 true 일 경우 true 반환 , 둘 다 false 경우에만 false를 반환 합니다.

 

&&, ||을 short circuit operator라고 부릅니다

&& - 만일 왼쪽 항이 false일 경우에는 오른쪽 항을 수행하지 않고 무조건 false를 반환합니다.
|| - 만일 왼쪽 항이 true일 경우에는 오른쪽 항을 수행하지 않고 무조건 true를 반환합니다.

 

& , | 보다는 && , || 를 많이 쓴다고 합니다. 그 이유는 &, | 는 더 이상 연산할 필요 없이 값이 정해질 때도 계속 끝까지 연산이 진행이 되고, &&, ||는 더 이상 연산할 필요 없이 값이 정해질 때, 오른쪽 항에 있는 연산을 진행하지 않기 때문이라고 합니다.

이 논리 연산자는 if문 , 삼항 연산자 에 많이 쓰입니다.

if - 만약 ~ 라면 , 이라는 영어 인데요 . JAVA에서도 비슷하게 쓰입니다.

if ( 조건 ) {참일 경우 수행} else {거짓일 경우 수행} . 여기서는 이정도만 알아두도록 하겠습니다.

&&, ||는 이렇게 앞에서부터 값이 결정되면 뒤는 수행하지 않고 지나가게 되는걸 확인 할 수 있습니다.

같은 코드지만 && , || 를 & , | 로 바꿧더니 뒤에도 수행이 되는 걸 확인 할 수 있습니다.

 

3항 연산자 ( 조건식 ? 연산식1 : 연산식2 )

3항 연산자는 피연산자가 3개인 연산자를 말합니다 ( 항이 3개 )

이 때에 조건식이 true(참) 이면 연산식1을 반환 , false(거짓) 이면 연산식2를 반환합니다.

※ 랜덤한 값 - Math.random() / double 형태의 값을 반환 합니다.

정수형으로 바꾸고 싶을 경우 double는 실수형이기 때문에 소수점에 있는 Casting 을 사용해서 변환시켜주면 됩니다. 

연산자 우선순위

소괄호 > 단항(캐스팅, 전위 증감 연산 등등) > 이항 > 삼항 >대입

수학이랑 비슷하다고 생각하시면 됩니다 ~

 

여기까지 2항 연산자 및 3항 연산자, 연산자 우선순위에 대해 알아 보았습니다.

 

고생하셨습니다.

'JAVA 공부' 카테고리의 다른 글

Day 04 - 입력 Scanner  (0) 2021.02.18
Day04 - 배열(Array)  (0) 2021.02.18
Day03 - 단항 연산자 및 종류  (0) 2021.02.17
Day03 - 연산에 의한 형변환  (0) 2021.02.17
Day02 - 기본 자료형 및 형 변환 Type Casting  (0) 2021.02.17