[Java] Ch03_1. 연산자(Operator)

토끼는 개발개발·2022년 1월 6일
0

Java

목록 보기
8/29
post-thumbnail

📌 Chapter03. 연산자(Operator)


✏️ 1. 연산자(Operator)


1.1 연산자와 피연산자

x + 3

  • 연산자: 연산을 수행하는 기호(+,-,* 등)
  • 피연산자: 연산자의 작업 대상(변수, 상수, 리터럴, 수식)
  • 연산자는 피연산자로 연산을 수행하고 나면 항상 결과값을 반환한다.

▶ 연산자의 종류


▶ 식(式)과 대입연산자

연산자를 사용해 결과를 얻었다면 그 값을 변수에 저장해야 한다.

1 + 2; // 3이라는 결과를 얻지만 쓰이지 않고 사라진다.
y = 1 + 2;
System.out.println(y); // 변수 y의 값을 화면에 출력


1.2 연산자의 우선순위와 결합규칙

식에 사용된 연산자가 둘 이상인 경우, 연산자의 우선순위에 의해서 연산순서가 결정된다. 수학에서 곱셉과 나눗셈이 덧셈과 뺄셈보다 우선순위가 높은 것과 같다.

  1. 산술 > 비교 > 논리 > 대입. 대입은 제일 마지막에 수행된다.
  2. 단항(1) > 이항(2) > 삼항(3) . 단항 연산자의 우선순위가 이항 연산자보다 높다.
  3. 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽이다.


1.3 산술 변환(usual arithmetic conversion)

이항 연산자는 두 피연산자의 타입이 일치해야 연산이 가능하므로, 연산전에 형변환 연산자로 피연산자의 타입을 일치시켜야한다.

 int i = 10;
 float f = 20.0f;
 float result = f + (float)i; // 형변환으로 두 피연산자의 타입을 일치

작은 타입에서 큰 타입으로 형변환하는 경우, 자동 형변환되므로 형변환 연산자를 생략할 수 있다.

float result = f + i;

▶ 산술 변환 규칙

  1. 두 피연산자의 타입을 같게 일치시킨다. (보다 큰 타입으로 일치)
long + int -> long + long -> long
float + int -> float + float -> float
  1. 피연산자의 타입이 int보다 작은타 타입이면 int로 변환된다.
byte + short -> int + int -> int
char + short -> int + int -> int
  1. 모든 연산에서 '산술 변환'이 일어나지만, 쉬프트 연산자와 증감 연산자는 예외이다.


참고
자바의 정석(저자: 남궁성)


오늘의 한 줄

연산자와 우선순위 규칙은 파이썬에도 있는 내용이므로 쉽게 익힐 수 있었다.
내일은 연산자 종류대로 자세히 알아보고, 예제를 통해 자바 연산을 익히겠다.

profile
하이 이것은 나의 깨지고 부서지는 샏 스토리입니다

0개의 댓글