증가(increment)는 Java를 포함한 많은 프로그래밍 언어에서 변수를 1씩 증가시키는 데 사용된다.
Fun fact: C++ 언어의 이름은 이 연산을 참조하며, C 언어에서 변화한 진화적 성격을 나타낸다.
++
and --
in Java자바에는 변수 값을 1씩 늘리거나 줄이는 증감(++
) 및 감소(--
)라는 두 가지 반대 연산자가 있다.
int n = 10;
n++; // 11
n--; // 10
int n = 10;
n += 1; // 11
n -= 1; // 10
증가 연산자와 감소 연산자는 두 가지 형태를 가지고 있다.
++n
/ --n
) : 변수가 사용되기 전에 변수의 값을 늘리거나 줄임.n++
/ n--
) : 변수가 사용된 후에 그 값을 늘리거나 줄임.int a = 4;
int b = ++a;
System.out.println(a); // 5
System.out.println(b); // 5
a
값이 증가한 다음에 변수 b
에 할당됨. 따라서 b
의 값은 5.int a = 4;
int b = a++;
System.out.println(a); // 5
System.out.println(b); // 4
자바에서 후위 연산자는 할당 연산자보다 우선순위가 높다.
위의 코드에서 변수 b
에 할당된 후위 연산자는 증가된 값이 아닌 a
의 원래 값을 반환한다. a++
를 b
에 할당할 때, 실제로는 4를 할당한 후 변수 a
의 값이 증가한다. 따라서 b
는 4이고 a
는 5이다.
int a = 4;
System.out.println(a++ + a); // this is 9
a++ + a
는 4 + 5가 됨.int a = 300;
int b = a++;
int c = --b;
b
의 값은 후위 연산자가 사용되었으므로 300이 대입된 이후에 a
의 값이 증가함.b
= 300, a
= 301c
의 값은 전위 연산자가 사용되었으므로 300 - 1의 값이 대입됨.c
= 299⒈ int a = 4;
⒉ int b = a++;
⒊ int c = --a + b++;
⒋ int result = ++a - (c++ - b) + c;
a
= 5, b
= 4 a
= 4, b
= 5, c
= 4 + 4 = 8, a
= 5, b
= 5, c
= 9, result
= 5 - (8 - 5) + 9 = 11