Java 증감 연산자

프로그래밍에서 더하기, 빼기를 많이 사용하기 때문에 ++, --연산자를 제공한다.

증감 연산자를 사용 전 수식 연산에 대해 알아보도록 한다.

int a = 1;

코드를 그림으로 표현하면 다음과 같다.

이제 더하기 수식으로 a = a + 1 추가하도록 하겠다.

int a = 1;
a = a + 2;
System.out.println(a);

Code Output:
3

그림으로 살펴 보도록 하자.

a + 2 코드 계산 전 a 값을 읽어 a = 1 라는 것을 알 수 있다. 식 a(1) + 2 연산한 다음 값3을 변수에 a에 대입하였다.

  • a 값 읽기. 추출 값 1
  • 1 + 2 연산
  • a 변수에 3 대입

증감연산자 ++, --

위에 설명한 a = a + 2; 대신 ++a 로 코드를 바꿔도 위에 설명한 수식대로 동작한다.

int a = 1;
++a;
System.out.println(a);

Code Output:
3

값을 감소할 때도 --a 와 같은 표현하면 된다. a = a - 1 되는 셈이다.

int a = 1;
--a;
System.out.println(a);

Code Output:
0

전위, 후위 표기법(증감 연산자)

증감 연산자에는 전위, 후위 표기로 사용할 수 있다. 위에서 설명한 ++a, --a 전위 표기이다.

증감 ++, -- 연산자는 피연산자(a) 앞, 뒤에 둘 수 있다. 위치에 따라 연산 수행시점이 달라진다.

  • ++a: 연산자를 피연산자(a) 에 둔 경우
    • 연산자 앞에 있다고 해서 전위(Prefix) 증감 연산자이다.
  • a++: 연산자를 피연산자(a) 에 둔 경우
    • 연산자 뒤에 있다고 해서 후위(Postfix) 증감 연산자이다.

전위 증감 연산자

다음 코드를 살펴보자.

int a = 1;
int b = 0;
b = ++a;
System.out.println("a = " + a + ", b = " + b);

Code Output:
a = 2, b = 2

위와 같은 코드가 있을 때 b = ++a 부분을 분리해서 표현할 수 있다.

int a = 1;
int b = 0;
a = a + 1;
b = a;
System.out.println("a = " + a + ", b = " + b);

b = ++a; 부분이 a = a + 1b = a 으로 나누어진 것을 볼 수 있다.

즉, ++a는 a 증가하는 증감연산 후 b로 대입한다.

후위 증감 연산자

전위 증감 연산자에서 대입 과 연산의 수행이 바뀌어 수행한다.
후위 증감 연산자 코드를 살펴보도록 한다.

int a = 1;
int b = 0;
b = a++;
System.out.println("a = " + a + ", b = " + b);

Code Output:
a = 2, b = 1

위와 같은 코드가 있을 때 b = ++a 부분을 분리해서 표현할 수 있다.

int a = 1;
int b = 0;
b = a;
a = a + 1;
System.out.println("a = " + a + ", b = " + b);

b = a++; 부분이 b = aa = a + 1 으로 분리된다.

즉, a++는 b로 대입한 다음 a를 증감 연산한다.