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

koom·2021년 6월 22일
0

JAVA

목록 보기
5/13

증감 연산자에는 크게 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값에 대입해주세요 라는 의미니까요:)

     

0개의 댓글