증가 및 감소 연산자를 줄여서 증감 연산자라 한다.
증감 연산자는 ++
와 --
로 표현되며, 이들은 변수의 값을 1만큼 증가 시키거나 감소시킨다.
프로그래밍에서는 값을 1씩 증가하거나 1씩 감소할 때가 아주 많기 때문에 이런 편의 기능을 제공한다.
package operator;
public class OperatorAdd1 {
public static void main(String[] args) {
int a = 0;
a = a + 1;
System.out.println("a = " + a); // 1
a = a + 1;
System.out.println("a = " + a); // 2
// 증감 연산자
++a; // a = a + 1
System.out.println("a = " + a); // 3
++a; // a = a + 1
System.out.println("a = " + a); // 4
}
}
변수 a
의 값을 하나 증가하려면 a = a + 1
연산을 수행해야 한다. 자기 자신에 1을 더하고 그 결과를 자신에게 다시 저장해야 한다.
코드는 다음과 같이 수행된다.
// a = 0
a = a + 1
a + 0 + 1 // 변수 a의 값 확인(0)
a = 1
// a = 1
a = a + 1
a = 1 + 1 // 변수 a의 값 확인(1)
a = 2
a = a + 1
을 ++a
로 간단히 표현할 수 있는 것이 바로 증감 연산자이다.
정리하면 해당 변수에 들어있는 숫자 값을 하나 증가하는 것이다.
++
(증가), --
(감소)
값을 하나 감소할 때는 --a
와 같이 표현하면 된다. 이것은 a = a - 1
이 된다.
증감 연산자는 피연산자 앞에 두거나 뒤에 둘 수 있으며, 연산자의 위치에 따라 연산이 수행되는 시점이 달라진다.
package operator;
public class OperatorAdd2 {
public static void main(String[] args) {
// 전위 증감 연산자 사용 예
int a = 1;
int b = 0;
b = ++a; // a의 값을 먼저 증가시키고, 그 결과를 b에 대입
System.out.println("a = " + a + ", b = " + b);
// 후위 증감 연산자 사용 예
a = 1; // a 값을 다시 1로 지정
b = 0; // b 값을 다시 0으로 지정
b = a++; // a의 현재 값을 b에 먼저 대입하고, 그 후 a 값을 증가시킴
System.out.println("a = " + a + ", b = " + b); // 결과 a = 2, b = 1
}
}
증감 연산자가 변수 앞에 오는 경우를 전위 증감 연산자라고 하며, 이 경우에는 증감 연산이 먼저 수행된 후 나머지 연산이 수행된다.
a = 1, b = 0
b = ++a // 전위 증감 연산자
a = a + 1 // a의 증감 연산이 먼저 진행, a = 2
b = a // 이후에 a를 대입 b = 2
결과 : a = 2, b = 2
증감 연산자가 변수 뒤에 오는 경우를 후위 증감 연산자라고 하며, 이 경우에는 다른 연산이 먼저 수행된 후 증감 연산이 수행된다.
a = 1, b = 0
b = a++ // 후위 증감 연산자
b = a; // a의 값을 먼저 b에 대입 b = 1
a = a + 1; // 이후에 a의 값을 증가 a = 2
결과 : a = 2, b = 1
참고로 다음과 같이 증감 연산자를 단독으로 사용하는 경우에는 다른 연산이 없기 때문에 본인의 값만 증가한다. 따라서 전위이든 후위이든 둘 다 결과가 같다.
++a;
a++;