Mingyu Kim

산술 연산자

1. 산술 연산자의 종류

연산자 의미 예시 (10, 3) 결과
+ 더하기 10 + 3 13
- 빼기 10 - 3 7
* 곱하기 10 * 3 30
/ 나누기(몫) 10 / 3 3 (정수 연산 시 소수점 버림)
% 나머지 10 % 3 1

2. 산술 연산 시 타입 변환 규칙 (Promotion)

산술 연산을 수행 시 컴파일러가 자동으로 타입을 맞추는 규칙이 있다. 이를 모르면 예상치 못한 결과를 얻게 된다.

정수 타입 연산

정수와 실수 연산

3. 디테일 분석: 정수 나눗셈의 함정

int a = 10;
int b = 4;
double result = a / b;
System.out.println(result); // 결과: 2.0 (2.5가 아님!)

int / int는 결과도 int여야 한다. 따라서 10 / 4의 결과인 2.5에서 소수점을 버린 2가 먼저 생성되고, 이 값이 double 변수에 저장되면서 2.0이 되는 것이다.

이를 해결하려면 피연산자 중 하나를 실수 타입으로 형변환(Casting)해야 한다.

double result = (double) a / b; // 10.0 / 4 => 2.5

4. 나머지 연산자 (%)

나머지 연산자는 주로 다음과 같은 경우에 활용한다.

5. 런타임 에러 주의: DivisionByZero

정수 연산에서 0으로 나누거나(10 / 0), 0으로 나머지를 구하려고 하면(10 % 0) 프로그램이 강제 종료되는 예외가 발생한다.

참고: 실수 연산인 10 / 0.0은 에러가 나지 않고 Infinity가 된다.

6. 요약 및 체크포인트