단항(單홑단 項항목항, unary) 연산자는 하나의 항을 대상으로 연산이 이루어지는 연산자이다. 다음은 자바에서 제공하는 단항 연산자들이다.

+ 양수를 표현한다. 실제로는 사용할 필요가 없다.
- 음수를 표현한다.
++ 증가(increment) 연산자로 항의 값을 1씩 증가 시킨다.
-- 감소(Decrement) 연산자
// 예제 1)
 
1	public class PrePostDemo {
2	    public static void main(String[] args) {
3        int i = 3;
4        i++;
5        System.out.println(i); // 4 출력
6        ++i;
7        System.out.println(i); // 5 출력
8        System.out.println(++i); // 6 출력
9        System.out.println(i++); // 6 출력
10        System.out.println(i); // 7 출력
    }
}

6행은 4행과 다르게 ++가 i 앞에 나왔다. 결과는 5다. ++가 i의 앞에 붙은 것이나 뒤에 붙은 것이나 결과는 같은 것 같다. 하지만 8행의 결과는 6이고, 9행의 결과값도 6이다. 무언가 이상하다.

이런 결과가 나오는 원인은 변수 ++ 연산자의 위치 때문이다. 즉 i++ 와 같이 ++ 연산자가 변수명 뒤에 붙으면 해당 코드가 실행되는 순간에는 i 값이 변경되지 않는다. 다만 i++ 문장이 실행된 이후에 i값이 증가하게 된다. 이와는 반대로 i++ 대신 ++i라고 사용하게 되면 i 값이 먼저 증가된 후에 해당 코드가 실행된다.

즉, 다음과 같은 차이가 있으니 잊지 말도록 하자.

<aside> 💡 ++i는 i의 값에 1이 더해진 값을 출력하는 것이고, i++는 이것이 속해있는 println에 일단 현재 i의 값을 출력하고, println의 실행이 끝난 후에 i의 값이 증가하는 특성이 있다.

</aside>