본문 바로가기

수업 복습하기/Java

Day 02 - 2항연산자와 3항 연산자

728x90
728x90

Day 02의 마무리~

2항 연산자 & 3항 연산자

 

=2항 연산자 (Binary Operator)란?

2항 연산자는 피 연산자(Operand)가 두 개인 연산자를 의미합니다.

 

1. 산술 연산자 ( +, -, *(아스타링크), /, % )

/와 %는 둘 다 나누기이지만 가장 큰 차이!

/는 출력값에서 몫이 나오고,  %는 출력값에서 몫으로 나눈 나머지의 값이 출력됩니다.

 

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

일반적으로 =는 같다지만, 자바에서는 대입이었고 같다고 표현하고 싶을 때는 ==

!=는 ==의 반대의 의미로 같지 않다.

나머지 비교 연산자는 일반 연산자와 같습니다.

 

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

비트 연산자는 정수 숫자를 비트로 변환해서 연산을 수행합니다.

& : 논리곱, (And)의 의미, 두 비트 모두 1일 경우에만 연산 결과가 1이 나옵니다.

| : 논리합, (OR)의 의미, 두 비트 중 하나만 1이면 연산 결과는 1

^ : 배타적 논리합, (XOR)의 의미, 두 비트 중 하나는 1이고 다른 하나가 0일 경우 연산 결과는 1

 

 

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

비트 이동 연산자는 정수 데이터의 비트를 좌측 또는 우측으로 미는 것!

Ex)

a<<b이면 정수 a의 각 비트를 b만큼 왼쪽으로 이동(빈자리는 0으로 채워짐)

a>>b이면 정수 a의 각 비트를 b만큼 오른쪽으로 이동(빈자리는 정수 a의 최상위 부호비트와 같은 값으로 채워진다)

 

5. 논리 연산자 ( &, |, &&, || ) + if 맛보기

boolean에서만 사용 할 수 있따.

&&과 &은 산출 결과는 같지만 연산 과정이 조금 다르다.

||과 |도 마찬가지인데,

&&은 (AND와 같다는 것을 생각하면)

피연산자 모두가 true일 경우에만 연산 결과가 true이기 떄문에, 단 하나의 false가 있다면 전체 연산 식은 false이다.

||같은 경우에는, (OR과 같다는 것을 생각)

피연산자 중 단 하나의 true가 있다면, 연산 결과는 true이기 떄문에, 전체 연산 식은 true이다.

 

하지만 &과 |은 모든 피연산자 모두를 평가하지만, &&과 ||은 단 1개가 있느냐 없느냐 판단하기 떄문에, 

더 효율적으로 연산 과정이 이루어진다.

 

- 출력값 : 

거짓입니다.
x값 :  10, y값 :20
참입니다
x값 :  10, y값 :20

if, for while에 논리 연산이 자주 사용됩니다. 조건식을 비교하기위해서~

이건 몇 포스팅 뒤에 더 자세히 알아볼거예요

 

= 3항 연산자란?

- ( 조건식 ? 연산식1 : 연산식2 ) 

: 조건식의 결과값이 참이면 연산식1, 거짓이면 연산식2를 실행하라. (약간 if와도 비슷하다 생각이 든다)

- 조건식에는 boolean형 조건식이 들어갑니다.

중요한건 math.random()은 0<랜덤값<1이어서, 10이라는 정수를 나타내기위해서는 11을 곱해야만

정수형으로 표현했을 때 10이라는 값이 도출될 수 있습니다~

 

- 출력값

0.05855193855303231 (랜덤 한 수여서 아무 숫자나 정답)
5 (랜덤 한 수여서 아무 숫자나 정답) 
3의 배수가 아닙니다

 

제일 중요함~

★★★★★★★★연산자 계산순서★★★★★★★★ 

- 소괄호 > 단항 > 이항 > 삼항 > 대입

 

728x90

'수업 복습하기 > Java' 카테고리의 다른 글

Day 03 - 스캐너(Scanner)란?  (0) 2021.08.18
Day 03 - 배열 (Array)  (0) 2021.08.18
Day 02 - 단항연산자(Unary Operator)  (0) 2021.08.17
Day 02 - 형 변환 (Type Casting) 02  (0) 2021.08.17
Day 02 - 형 변환 (Type Casting) 01  (0) 2021.08.16