Mingyu Kim

부호 및 증감 연산자

1. 부호 연산자 (+, -)

⚠️ 주의할 점: 연산 결과의 타입 변환
정수 타입(byte, short)의 부호 연산 결과는 무조건 int 타입이 된다. 자바 가상 머신(JVM)이 연산을 수행할 때 기본적으로 32비트(int) 단위로 처리하기 때문이다.

byte b = 100;
// byte result = -b; // 컴파일 에러 발생!
int result = -b;     // int 타입에 담아야 함

2. 증감 연산자 (++, –)

정수와 실수 타입 모두에 사용할 수 있다.

연산자 의미 설명
++피연산자 전위 증가 다른 연산을 수행하기 에 값을 1 증가
피연산자++ 후위 증가 다른 연산을 수행한 에 값을 1 증가
--피연산자 전위 감소 다른 연산을 수행하기 에 값을 1 감소
피연산자-- 후위 감소 다른 연산을 수행한 에 값을 1 감소

전위 vs 후위

int x = 10;
int y = 10;

// 전위 연산: x를 먼저 1 증가시키고, 그 결과를 result1에 대입
int result1 = ++x;
// 결과: x = 11, result1 = 11

// 후위 연산: y의 현재 값(10)을 result2에 먼저 대입하고, 그 다음 y를 1 증가시킴
int result2 = y++;
// 결과: y = 11, result2 = 10

증감 연산자 사용 시 권장 사항

증감 연산자가 복잡한 수식(예: z = ++x + y++)에 섞여 있으면 코드의 가독성이 급격히 떨어지고 실수를 유발하기 쉽다. 실무에서는 가급적 증감 연산자를 독립된 라인에서 사용하는 것이 좋다.

// 비권장
int z = ++x + y++;

// 권장 (의도가 명확함)
++x;
int z = x + y;
y++;

3. 요약 및 체크포인트