Java 부호/증감 연산자 이해하기[이것이 자바다]

SUUUI·2025년 4월 5일

java

목록 보기
11/16

부호/증감 연산자

부호 연산자는 변수의 부호를 유지하거나 변경한다
부호를 변경하는 것도 연산이므로 컴파일 에러에 유의해야한다 .

➖ : 피연산자의 부호 변경
➕ : 피연산자의 부호 유지

byte b = 10;
byte result = -b;

이 경우 Java에서 단항 연산자(-)를 사용할 때 타입 승격(type promotion)이 발생하기 때문에
컴파일링 에러가 발생한다

b의 값에 10 이 할당되고 ,
result 에 -b를 대입하면 자동으로 -를 사용한 것도 연산자 이므로, int 타입으로 승격이 되기 때문에
캐스팅(강제 형변환)이나 result 의 타입을 int 로 해줘야 컴파일링 에러가 안난다

byte b = 10;
int result = -b ;

<int로 결과값 받기>

byte b = 10;
byte result = (byte) -b;

<캐스팅하기>

증감연산자 (++ ,--)

변수의 값을 1 증가시키거나 1 감소시킨다
변수 앞에 붙냐 뒤에 붙냐에 따라 연산 결과가 달라진다

public static void main(String[] args) {
        // 변수 선언
        int a = 5;
        int b = 5;
        int c = 5;
        int d = 5;
        
        // 변수 단독으로 증감연산자 사용시 결과는 똑같다 
        a++;  // 후위 증가: a = a + 1
        ++b;  // 전위 증가: b = b + 1
        c--;  // 후위 감소: c = c - 1
        --d;  // 전위 감소: d = d - 1
        
        System.out.println("a++ 결과: " + a);  // 6
        System.out.println("++b 결과: " + b);  // 6
        System.out.println("c-- 결과: " + c);  // 4
        System.out.println("--d 결과: " + d);  // 4

변수 단독으로 증감연산자가 사용될 경우 결과는 항상 +1 , -1 로 동일하다

증감연산자가 피연산자 앞에 붙어있을 경우 먼저 피연산자의 값을 변화 시키고 (전위),
피연산자 뒤에 붙어있을 경우 원래 피연산자의 값을 쓰고 마지막에 값을 변화시킨다 (후위).

        int x = 10;
        int y = 10;
        int resultX = x++;  // 후위 증가: resultX에 x값(10)을 먼저 대입한 후, 1증가
        int resultY = ++y;  // 전위 증가: y값을 먼저 증가시킨 후, resultY에 증가된 y값(11) 대입
        
        System.out.println("x++ 후의 x: " + x);           // 11
        System.out.println("x++ 후의 resultX: " + resultX); // 10
        System.out.println("++y 후의 y: " + y);           // 11
        System.out.println("++y 후의 resultY: " + resultY); // 11
        
        // 복합 표현식에서의 차이
        int i = 5;
        int j = 5;
        System.out.println("i++ + i++ = " + (i++ + i++)); 
        // 5 + 6 = 11, i는 최종적으로 7
        System.out.println("++j + ++j = " + (++j + ++j));  
        // 6 + 7 = 13, j는 최종적으로 7
    }
profile
간단한 개발 기록

0개의 댓글