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 + 1
과 b = 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 = a
과 a = a + 1
으로 분리된다.
즉, a++는 b로 대입한 다음 a를 증감 연산한다.