CH03

yeon·2022년 11월 13일
0

이것이자바다

목록 보기
2/15

1.연산자와 연산식

연산

데이터를 처리하여 결과를 산출하는 것
연산식은 피연산자와 연산자를 통해 연산의 과정을 기술하며
피연산자는 연산 대상이 되는 데이터이며
연산자는 연산에 사용되는 표시나 기호를 일컫는다.

연산자의 종류

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

2. 연산의 방향과 우선순위

연산의 순서는 연산자의 우선 순위에 따라 정해짐
이 때 동일한 우선 순위를 가지는 연산자에는 연산의 방향이 있음
산술 연산의 경우 왼쪽에서 오른쪽 방향으로 연산 수행됨
단항 연산, 부호 연산, 대입 연산은 오른쪽으서 왼쪽 방향으로 연산

연산자연산방향우선순위
증감, 부호, 비트, 논리(!)높음
산술
쉬프트
비교(<, >, <=, >=, instanceof)
비교(==, !=)
논리(&)
논리(^)
논리(or)
논리(&&)
논리(or)
조건
대입낮음
  • 우선순위
    단항 > 이항 > 삼항
    산순 > 비교 > 논리 > 대입

간편 정리
1. 단항 > 이항
2. 곱셈, 나눗셈 > 덧셈, 뺄셈
3. 산술 > 비교
4. 비교 > 논리
5. 대입은 맨마지막
6. 괄호는 최우선

3. 단항 연산자

피연산자가 하나

부호 연산자

+: 피연산자 부호 유지
-: 피연산자 부호 반전

증감 연산자

피연산자 앞에 오는 경우 선 증감 후 다른 연산
피연산자 뒤에 오는 경우 다른 연산 후 증감
++: 피연산자 부호 1 증가
-- : 피연산자 부호 1 감소

논리 부정 연산자

!: 피연산자로 boolean만 취급하며 boolean값을 반전

비트 반전 연산자

~: 비트의 값을 반전(0 to 1, 1 to 0)
byte, short, long, int 타입만 취급하여 부호비트까지 반전되므로 부호가 반대인 새로운 값을 산출
byte/short -> int


4. 이항 연산자

피연산자가 두개

산술 연산자

덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/), 나머지(%)
boolean 제외 모든 기본 타입에서 사용 가능함

산술 타입에서의 타입 변환

  • int 보다 작은 정수 타입인 경우 int로 변환 후 연산 수행
  • long 타입과 다른 정수 타입의 연산인 경우 long으로 변환 후 연산
  • float/double 이 포함된 경우 float/double로 변환 후 연산

두 수를 산술 연산할 때 overflow 발생하여 잘못된 값이 발생할 수 있음

  • 리터럴 수를 연산할 경우, 연산 후 값이 저장될 수 있는 충분한 타입을 사용
  • 런타임 시 입력된 값일 경우, 산술 연산자를 직접 사용하지 않고 메소드를 작성하여 오버플로우를 미리 조사하고 예외처리

정확한 계산이 필요한 경우에는 정수를 사용하여 연산하는 것이 좋음

Nan, Infinity 연산을 주의해야함
입력된 문자열을 숫자형으로 변환할 경우에도 Nan인지 검사해야함

문자열 연결 연산자

피연산자 중 문자열이 있다면 문자열로 결합

대입 연산자

비교 연산자

논리 연산자

비트 논리 연산자

비트 이동 연산자

profile
🐥

0개의 댓글

관련 채용 정보