JAVA 연산자 정리 👨‍🍳

한꼬북·2021년 7월 16일
0

Java

목록 보기
5/7
post-thumbnail

목차 🎳

- 산술 연산자
- 비트 연산자
- 관계 연산자
- 논리 연산자
- instanceof
- 대입연산자
- 화살표(->) 연산자
- 3항 연산자
- 연산자 우선 순위
- switch 연산자

용어설명

int A = 1;
int b = 3;
// 연산
int C = A + B;

연산 👉 프로그앰에서 데이터를 처리한 결과를 산출하는 것
연산자 👉 연산을 수행하기 위해서 사용되는 문자 (+, -) 등
피연산자 👉 연산의 대상이 되는 데이터 위 연산에서 👉 A

1. 산술 연산자 🔣

종류설명
-뺄셈
*곱셈
/나눗셈
%나머지

기본적인 사칙연산
피연산자의 수는 이항, 결과 값은 숫자로 반환

2. 비트 연산자 🧄

종류설명
&AND
|OR
^XOR
~NOT
<<피연산자의 비트 열을 좌측으로 이동 후 빈 공간은 0으로 채움
>>피연산자의 비트 열을 오른쪽으로 이동 후 빈 공간에 음수는 1, 양수는 0으로 채움
>>>피연산자의 비트 열을 오른쪽으로 이동 후 빈공간은 0으로 채움

피연산자의 수는 ~ 연산자를 제외한 나머지는 이항

3. 관계 연산자 👩‍👩‍👧‍👧

종류설명
>크다
>=크거나 같다
<작다
<=작거나 같다
==같다
!=같지않다

피연산자의 수는 이항 결과 값은 Boolean값으로 반환

4. 논리 연산자 👨‍⚖️

종류설명
&&AND
||OR
!NOT

피연산자의 수는 ! 연산자만 단항 결과값은 Boolean값으로 반환
&, |도 사용할 수 있는데

int A = 2;
if(A > 0 && A > 1){
	System.out.println("참");
}
if(A > 0 & A > 1){
	System.out.println("참");
}

다른 점은 &의 경우 첫번째 조건이 참이면 다른 조건을 검사하고 첫번째 조건이 참이 아니라면 다른 조건은 검사하지 않음
|의 경우 첫번째 조건이 참이라면 그대로 참을 반환하고 다른 조건을 검사하지 않음

5. instanceof ✅

객체의 타입을 확인하는데 사용함 이항연산자이며 결과값은 Boolean
보통 형변환이 가능한지 확인할 때 사용한다고 한다.
보자마자 아 이거 상속관련해서 사용하겠는데? 라고 생각했다,,

6. 대입연산자 🧮

종류설명
=대입
+=더한 후 대입
-=뺀 후 대입
*=곱한 후 대입
/몫을 구한 후 대입
%나머지를 구한 후 대입

피연산자는 이항이며 최종적으로 우변의 값을 좌변의 대입해 줌

7. 화살표(->) 연산자 👉

Java 8에서 추가된 람다 표현식, 함수형 프로그래밍으로 표현
화살표 연산자를 통해서 익명 클래스를 표현할 수 있음
람다식은 메서드가 매개변수로 전달되는 것과 결과로 반환되는 것이 가능
(무지성 람다식을 사용할 경우 코드 가독성이 떨어진다고 합니다,,)

new Thread(() ->{
	System.out.println("람다식");
}).start();

8. 3항 연산자 👩‍👧‍👦

(조건) ? (true 경우 실행) : (false 경우 실행)
조건이 까다롭지 않을 경우 if문 보다 코드를 줄일 수 있음
그러다 조건이 많아지면 가독성이 안 좋음!!
말 그대로 피연산자를 삼항 받는다! 닉값👍

int a = 2;
int b = 1;
if (a > b){
	System.out.println("참");
}
System.out.println(a > b ? "참" : "거짓");

9. 연산자 우선 순위 ❔

순위연산자
1( ), [ ]
2!, ~ , ++, --
3*, /, %
4+, -
5<<, >>, >>>
6<, <=, >, >=
7==, !=
8&
9^
10|
11&&
12||
13? : (삼항연산자)
14=, +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, ~=

10. switch 연산자 🛠

Java 12에서 추가된 연산자
break를 사용하지 않아도 되고 return값이 존재해도 된다.
case -> A의 형식으로 사용 가능
yield 예약어로 반환값을 미리 지정해놓을 수 있음

int score = 100;
// 기존 switch문
switch(score){
	case 100 : 
    	System.out.println("만점");
        break;
	case 0 :
    	System.out.println("빵점");
        break;
}
// 추가된 switch 연산자
switch(score){
	case 100 -> System.out.println("만점");
    case 0 -> System.out.println("빵점");
};
profile
오히려 좋아, 자 가보자고!

0개의 댓글