arithmetic decision

산술 연산자는 타입과 결과 형태를 함께 본다

같은 기호라도 피연산자가 정수인지 실수인지, 결과를 값으로 쓸지 변수 변경으로 쓸지에 따라 선택 기준이 달라집니다.

선택 흐름

1

기본 계산인지 확인

덧셈, 뺄셈, 곱셈은 두 피연산자의 타입 변환 뒤 값을 만듭니다.

a + b a - b a * b
2

나눗셈 결과 타입 결정

정수끼리 나누면 정수 몫, 한쪽이 실수면 실수 나눗셈입니다.

10 / 3 10.0 / 3
3

나머지는 정수에만 사용

%는 몫이 아니라 남은 값을 구할 때 쓰며 실수에는 사용할 수 없습니다.

10 % 3 index % size
4

변수 변경이면 전위/후위 구분

값을 먼저 바꿔 쓸지, 현재 값을 먼저 쓸지에 따라 ++xx++를 고릅니다.

자주 헷갈리는 지점

integer division

소수점은 버려진다

int / int 결과는 정수라서 나중에 double에 담아도 이미 몫만 남습니다.

cast first

먼저 실수로 바꾸기

정확한 평균이나 비율이 필요하면 계산 전에 한쪽을 실수로 변환합니다.

modulo

주기와 홀짝 판단

나머지는 반복 위치, 배수 검사, 홀짝 판정처럼 정수 규칙을 만들 때 유용합니다.

prefix first

값 변경만이면 전위

다른 표현식과 섞지 않는다면 의도가 단순한 전위 증가를 기본 선택으로 둡니다.

타입 정수끼리 계산인지 실수가 섞였는지 확인 결과 몫, 나머지, 실수 비율 중 필요한 값을 선택 순서 증감 연산은 현재 값과 변경 값 중 무엇을 쓸지 결정