[Java] 연산자

김세림·2024년 4월 23일

Java

목록 보기
3/24
post-thumbnail

연산자


연산자 종류

산술 연산자
+ - * / % << >>
사칙 연산과 비트연산
비교 연산자
> < >= <= == !=
크고 작음과 같고 다름을 비교
논리 연산자
&& || !
그리고(AND)와 또는(OR) 으로 조건을 연결
대입 연산자
= ++ —-
우변의 값을 좌변에 저장, 연산 복합 대입
기타 연산자
(type) ? :  instance of
형변환 연산자, 삼항 연산자, instance of 연산자

사칙연산이라거나 비교같은 경우는 쉽다고 생각되어
아래는 각 연산자 별로 정리가 필요하다 느끼는 부분만 정리하겠다.

산술연산자

사칙연산 + 비트연산

비트연산

연산 중 가장 빠른 연산 - 컴퓨터의 가장작은 단위로 연산을 하기에 다른 작업 없이 바로 행해지기 때문이다.
0,1은 2진수 값이기 때문에
<< 2의 배수로 곱셈연산되는 것과 동일
>> 2의 배수로 나눗셈 연산되는 것과 동일

//ex)
System.out.print(3 << 2); //3을 2²만큼 움직인것이므로 12값이 출력
System.out.print(4 >> 1); //4를 2만큼 나눈것과 같으므로 2값이 출력

비교연산자

크기비교 및 !=(not) 다름을 비교

//ex)
int a = 3;
int b = 4;
System.out.print(a != b); //a와 b는 다르므로 true값이 출력

논리연산자

&&(And), ||(Or), !(Not)
!은 위 비교연산자와 비슷하게 보이지만 논리연산자는 boolean값을 연결하는 연산자이다.

//ex)
int a = 3;
int b = 4;
System.out.print(!(a != b)); 
//a와 b는 다르므로 true값이 출력되지만 이것을 !으로 묶어 반대값인 False가 출력

대입연산자

= (기본 대입 연산자), +=, -= ... (복합 대입 연산자)

복합 대입 연산자

+= 1 은 ++과 같은 의미 (-= 또한 --과 같은 의미)

여기서 잠깐!

++과 --의 위치에 따라 기능이 달라진다는 사실!

int a = 10;
int b = 10;
//a++; 와 ++a;의 값은 결론적으론 같지만
int val = ++a + b--;
//val에 대입하기전 a는 +1이 된 상태로 대입되고
// b는 val에 대입한 이후에 -1이 되기때문에
System.out.print(val); //val의 값은 21로 출력된다.

위 예제처럼 증감연산자와 피연산자의 위치에 따라 연산 순서가 달라지니 주의!

기타연산자

형변환 연산자

이전 변수에서 형변환할때 사용한 캐스팅 방법을 형변환 연산자라고 한다.

//ex
int intNumber = 93 + (int) 98.8; //값은 93+98로 191이 된다.

삼항 연산자

3가지의 피연산자가 존재한다.
(조건) ? (true일때) : (False일때)

int a = 10;
int b = 9;
String c = (a==b) ? "같음" : "다름";
System.out.print(c); //"다름" 출력

instance of 연산자

피연산자가 조건에 명시된 클래스의 객체인지 비교하여 참.거짓을 응답해주는 연산자
-> 아직 나도 이해가 안되지만 3주차에 배울 클래스관련 내용이여서 내일 듣는 강의에 있을 것 같다.

연산자 우선순위

연산자 우선순위 : 산술 > 비교 > 논리 > 대입
기본은 위와 같으며, ()(괄호)로 감싸주면 괄호안 연산이 최우선으로 계산된다.
또한, 연산전엔 두 피연산자의 타입을 저장공간이 더 큰 타입으로 일치시킨다.
(어제 자동형변환했던 방식과 같은 것 같다.)

0개의 댓글