더북(TheBook)

자, 이번에는 i5를 선언하고 i3 뒤에 ++를 붙여보겠습니다. 앞의 코드와 마찬가지로 i31을 더하라는 의미입니다. i5i3를 출력하면 둘 다 6에서 1을 더한 값인 7이 나올까요?

public class OperatorExam {

    public static void main(String[] args) {
        int i1 = -5;
        int i2 = +i1;
        int i3 = -i1;
        int i4 = ++i3;  // int i4 = ( i3 = i3+1)
        int i5 = i3++;  // int i5 = i3;  i3 = i3+1;
        System.out.println(i5);
        System.out.println(i3);
    }
}

 

실행결과

6
7

 

i5를 출력하니 예상한 7 대신 6이라는 결과가 나왔습니다. 왜 그런지 이유를 살펴보겠습니다. ‘++’가 앞에 붙어있을 때는 먼저 i31을 더한 다음, 더한 결괏값을 해당 변수에 넣어줍니다. 그런데 ‘++’가 뒤에 붙어있을 때는 해당 변수에 먼저 값을 넣은 다음 i31을 더합니다. 즉, i3에 들어있던 6을 먼저 i5에 대입한 다음 i31을 더한 것입니다. 따라서 i3를 출력하면 i31이 늘어난 7을 출력합니다. 이 과정은 ‘--’의 경우에도 똑같이 수행합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.