[Java] 증감연산자 쉽게 이해하기

삶걀·2022년 5월 3일
1

기타

목록 보기
10/12

증감연산 (++, --)
자바는 ++, -- 기호를 이용하여 값을 증가하거나 감소시킬 수 있다. 이러한 ++, -- 기호를 증감 연산자라고도 한다.

다음의 예를 보자.

int i = 0;
int j = 10;
i++;
j--;

System.out.println(i);  // 1 출력
System.out.println(j);  // 9 출력

++는 값을 1만큼 증가시키고 --는 값을 1만큼 감소시킨다는 것을 확인 할 수 있다. 하지만 여기서 잠깐 실수하기 쉬운 것이 있다. 그것은 바로 ++, -- 등의 연산자의 위치이다.

다음의 예제를 보자.

int i = 0;
System.out.println(i++);  // 0 출력
System.out.println(i);  // 1 출력

System.out.println(i++) 의 출력값은 i가 1만큼 증가되어 1 이 출력되어야 할 것 같지만 0 이 출력되었다. 그렇다면 변수 i의 값이 증가되지 않은것일까? 그 다음 문장인 System.out.println(i) 의 출력값을 확인 해 보니 1이 나온다.

그렇다면 i의 값은 증가된 것이다.

이런 결과가 나오는 원인은 변수 ++ 연산자의 위치 때문이다. 즉 i++ 와 같이

++ 연산자가 변수명 뒤에 붙으면 해당 코드가 실행되는 순간에는 i 값이 변경되지 않는다.

다만 i++ 문장이 실행된 이후에 i값이 증가하게 된다. 이와는 반대로 i++ 대신 ++i라고 사용하게 되면 i 값이 먼저 증가된 후에 해당 코드가 실행된다.

즉, 다음과 같은 차이가 있으니 잊지 말도록 하자.

i++ : 값이 참조된 후에 증가
++i : 값이 참조되기 전에 증가
다음처럼 연산자의 위치를 변경하여 확인 해 보자.

int i = 0;
System.out.println(++i);  // 1 출력
System.out.println(i);  // 1 출력

++i 에 의해서 i값이 참조되기 전에 증가된 것을 확인 할 수 있다.

-- 연산자도 ++ 연산자와 동일한 규칙을 따른다.

출처: [점프 투 자바]https://wikidocs.net/204

profile
반숙란 좋아하는사람

1개의 댓글

comment-user-thumbnail
2023년 12월 1일

안녕하세요

public static void main(String args[]) {
int num = 5;

        // 지시사항 1번을 참고하여 코드를 작성하세요.
        int result = num++;  // num++; -> num = num +1

        System.out.println("num : " + num);
        System.out.println("result : " + result);

처음거는 6이 출력되는걸 알겠는데 result는 왜 5로 출력이 될까요...?

답글 달기