[Java] 증감 연산자

코드 속의 "진돌"·2023년 12월 23일
0
post-thumbnail

✅ 증감 연산자

증가 및 감소 연산자를 줄여서 증감 연산자라 한다.

증감 연산자는 ++--로 표현되며, 이들은 변수의 값을 1만큼 증가 시키거나 감소시킨다.

프로그래밍에서는 값을 1씩 증가하거나 1씩 감소할 때가 아주 많기 때문에 이런 편의 기능을 제공한다.


✏️ OperatorAdd1

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이 된다.


✅ 전위, 후위 증감 연산자

증감 연산자는 피연산자 앞에 두거나 뒤에 둘 수 있으며, 연산자의 위치에 따라 연산이 수행되는 시점이 달라진다.

  • ++a : 증감 연산자를 피연산자 앞에 둘 수 있다. 이것을 앞에 있다고 해서 전위(Prefix) 증감 연산자라 한다.
  • a++ : 증감 연산자를 피연산자 뒤에 둘 수 있다. 이것을 뒤에 있다고 해서 후위(Postfix) 증감 연산자라 한다.

✏️ OperatorAdd2

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 전위 증감 연산자

a = 1, b = 0
b = ++a  // 전위 증감 연산자

a = a + 1  // a의 증감 연산이 먼저 진행, a = 2
b = a  // 이후에 a를 대입 b = 2

결과 : a = 2, b = 2

증감 연산자가 변수 뒤에 오는 경우를 후위 증감 연산자라고 하며, 이 경우에는 다른 연산이 먼저 수행된 후 증감 연산이 수행된다.

예) a++ 후위 증감 연산자

a = 1, b = 0
b = a++  // 후위 증감 연산자

b = a;  // a의 값을 먼저 b에 대입 b = 1
a = a + 1;  // 이후에 a의 값을 증가 a = 2

결과 : a = 2, b = 1

참고로 다음과 같이 증감 연산자를 단독으로 사용하는 경우에는 다른 연산이 없기 때문에 본인의 값만 증가한다. 따라서 전위이든 후위이든 둘 다 결과가 같다.

++a;
a++;
profile
매일 성장하는 주니어 개발자의 기록📝

0개의 댓글