백엔드/Java의 정석

TIL 정리_03

ran4 2022. 2. 18. 21:57

 

 

Chapter 3. 연산자 

 

연산자 : 연산을 수행하는 기호

피연산자 : 연산자의 연산 수행 대상 

>모든 연산자는 연산 결과를 반환한다 

y = 4 * x + 3

System.out.println(y);

 

연산자의 종류 

종류 연산자 설명
산술 연산자 + - * / % << >> 사칙연산(+-*/)과 나머지연산(%)
비교 연산자 > < >= <= == != 크고 작음과 같고 다름을 비교
논리 연산자 && || ! & | ^ ~ 그리고(and)’또는(or)’으로 조건연결
대입 연산자 = 우변의 값을 좌변에 저장
기타 (type) ?: instanceof 형변환 연산자, 삼항 연산자, instanceof 연산자

연산자의 우선순위는 

산술 > 비교 > 논리 > 대입 순서이다

우선순위가 같은 연산자가 있을 때, 기본적으로 왼쪽->오른쪽 순서지만,

대입과 단항 연산자만 오른쪽에서 왼쪽으로 연산한다.

 

정리하자면 

산술(+) > 비교(><) > 논리(&& ||) > 대입

단항(1) > 이항(2) / 삼항(3)

단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향을 왼쪽에서 오른쪽이다 (기본적으로 아는사실)

 

증감 연산자

증가 연산자(++) 피연산자의 값을 1 증가시킨다.

감소 연산자(--) 피연산자의 값을 1 감소시킨다.

타입 설명 사용예
전위형 값이 참조되기 전에 증가시킨다 j = ++i;
후위형 값이 참조된 후에 증가시킨다 j = i++;

산술변환

연산전에 피연산자의 타입을 일치시키는 것

 

**중요규칙**

두 피연산자의 타입을 같게 일치시킨다. (보다 큰 타입으로 일치)

long + int > long + long

float + int > float float

double + float > double double

피연산자의 타입이 int보다 작은 타입이면 int로 변환된다.

byte + short > int int

char + short > int int // byte 128~127 char 0~6short +-3

 

반올림 Math.round()

실수를 소수점 첫 째자리에서 반올림 한 정수를 반환

long result = Math.round(4.52); //result5가 저장

 

나머지 연산자 %

오른쪽 피연산자로 나누고 남은 나머지를 반환

나누는 피연산자는 0이 아닌 정수만 허용(부호는 무시됨)

system.out.println(10 % 8);

system.out.println(10 % -8); //부호무시

 

비교연산자 > < >= <= == !=

부등호 등호순서 결과값은 true or false

비교연산자 연산결과
> 좌변 값이 크면, true 아니면 false
< 좌변 값이 작으면, true 아니면 false
>= 좌변 값이 크거나 같으면 true
<= 좌변값이 작거나 같으면 true
== 두 값이 같으면 true, 아니면 false
!= 두 값이 다르면 true, 아니면 false

**문자열 비교에는 == 대신 equals()를 사용해야 한다

 

논리 연산자 && ||

조건식을 연결할 때 쓰는 연산자

|| (OR결합) //피연산자 중 어느 한쪽이 true이면 true를 결과로 얻는다

&& (AND결합) 피연산자 양쪽모두 true여야 true를 결과로 얻는다

 

논리 부정 연산자 !

truefalsefalse true로 바꾼다. // x !x

 

조건 연산자 ? :

조건식의 결과에 따라 연산결과를 달리한다

조건식 ? 1 : 2

if문을 간단히 쓸 수 있게 고안됐다

 

대입연산자

오른쪽 피연산자를 왼쪽 피연산자에 저장 후 저장된 값을 반환

System.out.println(x = 3); //변수에 3이 저장되고 연산결과인 3이 출력

 

대입 연산자와 다른 연산자를 하나로 축약

op= =
i += 3; i = i + 3;
i -= 3; i = i - 3;
i *= 3; i = i * 3;
i /= 3; i = i / 3;
i %= 3; i = i % 3;
i <<= 3; i = i << 3;
i >>= 3; i = i >> 3;
i &= 3; i = i & 3;
i ^= 3; i = i ^ 3;
i |= 3; i = i | 3;
i *= 10 + j; i = i * (10 + j);

첫번째와 마지막 패턴만 숙지하면 된다. (괄호의 중요성) 

'백엔드 > Java의 정석' 카테고리의 다른 글

TIL 정리_06  (0) 2022.02.21
TIL 정리_05  (0) 2022.02.21
TIL 정리_04  (0) 2022.02.19
TIL 정리_02  (0) 2022.02.17
TIL 정리 _01(Java)  (0) 2022.02.16