2021. 2. 17. 17:20ㆍJAVA 공부
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 |