JAVA의 증감연산자(++, --)
증감 연산자에는 크게 2가지로 나뉩니다.
전위연산자(=전치연산자), 후위연산자(=후치연산자) 이렇게 말이죠.
전위연산자는 어떻게 생겼을까요?
++i이렇게 생겼습니다.
그럼 후회연산자는 어떻게 생겼을까요?
i++ 이렇게 생겼습니다.
그냥 단순히 증감연산자가 앞에 있으면 전위인거고, 뒤에 있으면 후위가 되는겁니다!
둘의 의미는 아래와 같습니다.
1. i에 1을 더해달라. 그리고 그 값을 i에 넣어달라.
2. i를 1 증가시켜달라. 그리고 그 값을 i에 대입해달라.
3. i + 1을 해달라. 그리고 i를 그 결과값으로 바꿔달라.
(다 같은 말입니다. i = i + 1)
❓ 근데 왜 전위를 쓰고 후위를 쓰죠? 어차피 결론은 i + 1 해달라는 아닙니까?
❗ 맞습니다. 결론은 i + 1을 해달라는거죠. 그런데 계산을 하다보면 전위연산자를 쓰느냐 후위연산자를 쓰느냐에 따라 값이 달라지는 경우가 생기게 됩니다.
👀 코드를 같이 살펴볼까요?
📌 전위연산자
아래는 전위연산자를 사용 했을 때의 코드와 결과입니다.
public static void main(String[] args) {
int i = 0;
int j = ++i;
System.out.println(i); // 1
System.out.println(j); // 1
}
왜 저렇게 나왔을까요?
i가 어떻게 1이 되고, j가 어떻게 1이 되는 걸까요?
전위연산자는 성격이 좀 느긋한 친구입니다.
그래서 i + 1을 할 때까지 기다렸다가 계산이 끝나면 해당 값을 j에 대입하는거죠.
지금 i가 몇이죠?
0이요.
i + 1을 하면 몇이죠?
1이요.
그럼 j는 몇이죠?
1이요.
왜요?
j는 i + 1을 할 때까지 기다려줄 수 있는 인내심을 가졌으니까요. 그리고 그 인내심의 보상으로 i + 1한 값을 j가 먹는거죠.
📌 후위연산자
아래는 후위연산자를 사용 했을 때의 코드와 결과입니다.
public static void main(String[] args) {
int i = 0;
int j = i++;
System.out.println(i); // 1
System.out.println(j); // 0
}
왜 저렇게 나왔을까요?
i가 어떻게 1이 되고, j가 어떻게 0이 되는 걸까요?
후위연산자는 성격이 좀 급한 친구입니다.
i + 1을 계산할 때까지 기다려줄 여유가 없어요.
그래서 어떻게 하냐면 일단 i의 값을 자기가 가져요. 그 다음 i + 1을 계산하게 해줍니다.
지금 i가 몇이죠?
0이요.
전위연산자는 i + 1을 할 때까지 기다려주지 않는다고 했습니다.
그래서 일단 급한대로 현재 i값(0)을 본인(j)에게 대입합니다.
그럼 j는 몇이죠?
0이요.
🤔 잠시만요 그러면 i + 1은 어떡하죠? 아직 계산을 못했잖아요...
지금 해주면 됩니다!
일단 성격 급한 친구 먼저 보내놓고, 나중에 처리해주면 되는거죠.
그럼 i는 뭐가될까요?
1이 됩니다.
왜죠?
i++의 의미는 i에 1을 더해서 i값에 대입해주세요 라는 의미니까요:)
Author And Source
이 문제에 관하여(JAVA의 증감연산자(++, --)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@riedel/증감연산자-저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)