자바 도전기-5

김치전사·2021년 12월 29일
0

자바도전기

목록 보기
5/17

연산자(Operator)를 공부했다

사칙연산(+-/*)를 수만번 써봤던 사람들은 이 부분은 쉽다

학창시절 비슷하게 많이 써봤기 때문에 쉽게 학습할 수 있었다

연산자는 연산을 수행하는 기호를 말한다. 연산자가 연산을 수행하려면 반드시 연산의 대상이 있어야하는데, 이것을 '피연산자(operand)'라고 한다

연산자(operator) 연산을 수행하는 기호(+,-,*,/ 등)
피연산자(operand) 연산자의 작업 대상(변수, 상수, 리터럴, 수식)

연산자는 피연산자로 연산을 수행하고 나면 항상 결과값을 반환한다

연산자 종류연산자피연산자수산출값 타입기능 설명
산술+, -, *, /, %이항숫자사칙연산 및 나머지 계산
부호+, -단항숫자음수와 양수의 부호
문자열+이항문자열두 문자열을 연결
대입=, +=, -=, *=, /=이항다양우변의 값을 좌변의 변수에 대입
증감++,--단항숫자1만큼 증가/감소
비교==, !=, >, <, >=, <=, instanceof이항boolean값의 비교
논리!, &, |, &&, ||단항, 이항boolean논리적 NOT,AND,OR 연산
조건(조건식)?A:B삼항다양조건식에 따라 A 또는 B중 하나를 선택
비트~, &, |, ^단항, 이항숫자, boolean비트 NOT,AND,OR,XOR 연산
쉬프트>>, <<, >>>이항숫자비트를 좌측/우측으로 밀어서 이동

피연산자의 개수가 하나면 '단항 연산자', 두 개면 '이항 연산자', 세 개면 '삼항 연산자'라고 부른다.
대부분의 연산자는 '이항 연산자'이고, 삼항 연산자는 오직 "?:" 하나뿐이다

연산자의 우선순위

1. 산술 > 비교 > 논리 > 대입. 대입은 제일 마지막에 수행된다
2. 단항(1) > 이항(2) > 삼항(3). 단항 연산자의 우선순위가 이항 연산자보다 높다
3. 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽이다
종류연산방향연산자우선순위
단항 연산자<--++, --, +, -, ~, !1
산술 연산자-->*, /, %2
산술 연산자-->+, -3
산술 연산자--><<, >>, >>>4
비교 연산자--><, >, <=, >=, instanceof5
비교 연산자-->==, !=6
논리 연산자-->&7
논리 연산자-->^8
논리 연산자-->|9
논리 연산자-->&&10
논리 연산자-->||11
삼항 연산자-->?:12
대입 연산자<--=, *=, /=, +=, -=, <<=, >>=13

산술 변환의 규칙

1. 두 피연자의 타입을 같게 일치시킨다(보다 큰 타입으로 일치)
long + int -> long + long -> long
float + int -> float + float -> float
double + float -> double + double -> double
2. 피연산자의 타입이 int보다 작은 타입이면 int로 변환된다
byte + short -> int + int -> int
char + short -> int + int -> int

모든 연산에서 '산술 변환'이 일어나지만, 쉬프트 연산자(<<,>>), 증감 연산자(++,--)는 예외이다

산술 변환이란? 연산 수행 직전에 발생하는 피연산자의 자동 형변환
1) 두 피연산자의 타입을 같게 일치시킨다(보다 큰 타입으로 일치)
2) 피연산자의 타입이 int보다 작은 타입이면 int로 변환된다
profile
개인공부 블로그입니다. 상업적 용도 X

0개의 댓글