JAVA 기본

3주차 과제: 연산자

홍박스 2021. 2. 2. 02:39
728x90

목표

자바가 제공하는 다양한 연산자를 학습하세요.

학습할 것

  • 산술 연산자
  • 비트 연산자
  • 관계 연산자
  • 논리 연산자
  • instanceof
  • assignment(=) operator
  • 화살표(->) 연산자
  • 3항 연산자
  • 연산자 우선 순위
  • (optional) Java 13. switch 연산자

 

산술 연산자

+ 왼쪽의 피연산자(수)에 오른쪽 피연산자를 더하기

-  왼쪽의 피연산자(수)에 오른쪽 피연산자를 빼기

왼쪽의 피연산자(수)에 오른쪽 피연산자를 곱하기

왼쪽의 피연산자(수)에 오른쪽 피연산자를 나누기

% 왼쪽의 피연산자(수)에 오른쪽 피연산자를 나눈 후 나머지

 

연산자 우선순위

사친연산이랑 같음

 

비트 연산자

     
& 비트 AND 연산자
| 비트 OR 연산자
^ 비트 XOR 연산자
~ 비트 NOT 연산,1의 보수

 

논리 연산자

A B A&B
1 1 1
1 0 0
0 1 0
0 0 0

 

A B A|B
1 1 1
1 0 1
0 1 1
0 0 0
A B A^B
1 1 0
1 0 1
0 1 1
0 0 0
A ~A
1 0
0 1

관계 연산자

== 같다
!= 다르다
> 왼이 큼
>= 왼이 크거나 같음
< 오른이 큼
<= 오른이 크거나 같음
instanceof  객체가 어떤 클래스나 인터페이스로 부터 생성되었는지 판별하는 역활
  NAME instanceof classNAME

assignment(=) operator

(대입연산자)

= 왼쪽의 피연산자에 오른쪽의 피연산자를 대입함.
+= 왼쪽의 피연산자에 오른쪽의 피연산자를 더한 후, 그 결괏값을 왼쪽의 피연산자에 대입함.
-= 왼쪽의 피연산자에서 오른쪽의 피연산자를 뺀 후, 그 결괏값을 왼쪽의 피연산자에 대입함.
*= 왼쪽의 피연산자에 오른쪽의 피연산자를 곱한 후, 그 결괏값을 왼쪽의 피연산자에 대입함.
/= 왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 결괏값을 왼쪽의 피연산자에 대입함.
%= 왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 나머지를 왼쪽의 피연산자에 대입함.
&= 왼쪽의 피연산자를 오른쪽의 피연산자와 비트 AND 연산한 후, 그 결괏값을 왼쪽의 피연산자에 대입함.
|= 왼쪽의 피연산자를 오른쪽의 피연산자와 비트 OR 연산한 후, 그 결괏값을 왼쪽의 피연산자에 대입함.
^= 왼쪽의 피연산자를 오른쪽의 피연산자와 비트 XOR 연산한 후, 그 결괏값을 왼쪽의 피연산자에 대입함.
<<=

왼쪽의 피연산자를 오른쪽의 피연산자만큼 왼쪽 시프트한 후, 그 결괏값을 왼쪽의 피연산자에 대입함.

>>= 왼쪽의 피연산자를 오른쪽의 피연산자만큼 부호를 유지하며 오른쪽 시프트한 후, 그 결괏값을 왼쪽의 피연산자에 대입함.
>>>= 왼쪽의 피연산자를 오른쪽의 피연산자만큼 부호에 상관없이 오른쪽 시프트한 후, 그 결괏값을 왼쪽의 피연산자에 대입함.

화살표 연산자

처음봄ㄷㄷ

 

JAVA8 부터 도입된 연산자로 람다 표현식이라고 하며 메소드 본문에 해당 실행 가능한 자바 코드의 익명 컬렉션이라고 함

자세한 내용은 람다를 공부하면서 작성할 예정이기 때문에 지금은 람다는 이쁜 익명 메소드라고 생각해도 좋다라고한다

결론 좀 더 간결하게 만들려고 만든거

나중에 다시 하자

 

삼항 연산자

문법:

조건식 ? 반환값1: 반환값2

 

무음표 앞 조건식에 따라 결과값이 참이면 1 거짓이면2 반환함

EX)

int a = 5 int b =6

int r;

 

r = a-b>0? a:b

r은 앞에 식이 거짓이므로 b, 즉 6이다

 

 

 

(optional) Java 13. switch 연산자

 

자바13부터 추가된 연산자로 
일반적인 switch문에서는 break로 리턴을 시켜줬지만,

자바13부터는 yield키워드를 이용해서 리턴하게 변경되었다.

 

 

 

728x90