자, 이번에는 i5를 선언하고 i3 뒤에 ++를 붙여보겠습니다. 앞의 코드와 마찬가지로 i3에 1을 더하라는 의미입니다. i5와 i3를 출력하면 둘 다 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이라는 결과가 나왔습니다. 왜 그런지 이유를 살펴보겠습니다. ‘++’가 앞에 붙어있을 때는 먼저 i3에 1을 더한 다음, 더한 결괏값을 해당 변수에 넣어줍니다. 그런데 ‘++’가 뒤에 붙어있을 때는 해당 변수에 먼저 값을 넣은 다음 i3에 1을 더합니다. 즉, i3에 들어있던 6을 먼저 i5에 대입한 다음 i3에 1을 더한 것입니다. 따라서 i3를 출력하면 i3는 1이 늘어난 7을 출력합니다. 이 과정은 ‘--’의 경우에도 똑같이 수행합니다.