12.2 변수 하나에서 값을 더하거나 빼기

이번에는 변수 하나에서 값을 더하거나 빼는 방법을 알아보겠습니다.

  • 변수1 = 변수1 + 값;
  • 변수1 = 변수1 - 값;

다음 내용을 소스 코드 편집 창에 입력한 뒤 실행해보세요.

add_sub_variable.c

#include <stdio.h>

int main()
{
    int num1 = 1;
    int num2 = 1;

    num1 = num1 + 2;    // num1에 2를 더한 뒤 다시 num1에 저장
    num2 = num2 - 2;    // num2에서 2를 뺀 뒤 다시 num2에 저장

    printf("%d\n", num1);    //  3
    printf("%d\n", num2);    // -1

    return 0;
}

실행 결과

3
-1

num1 = num1 + 2;는 처음 봤을 때 문법이 좀 이해가 가지 않을 수도 있습니다. 만약 num1 + 2;만 있으면 덧셈만 될 뿐 결괏값이 유지되지 않습니다. 이때는 변수에 값을 더한 뒤 다시 자기자신에게 저장하는 방식으로 변수의 값을 더하거나 뺄 수 있습니다(값을 증가시키거나 감소시킴).

즉, num1 + 2가 처리된 다음 num1 = 3이 처리되어 최종적으로 num1에는 3이 들어갑니다.

그림 12‑1 변수 하나에서 값을 더하기

마찬가지로 뺄셈도 num2 - 2가 처리된 다음 num1 = -1이 처리되어 최종적으로 num1에는 -1이 들어갑니다.

C 언어에서는 num1 = num1 + 2;와 같이 num1을 두 번 입력하지 않도록 덧셈 후 할당 +=, 뺄셈 후 할당 -= 연산자를 제공합니다.

  • 변수 += 값
  • 변수 -= 값

add_sub_assign.c

#include <stdio.h>

int main()
{
    int num1 = 1;
    int num2 = 1;

    num1 += 2;    // num1에 2를 더한 뒤 다시 num1에 저장(2를 증가시킴)
    num2 -= 2;    // num2에서 2를 뺀 뒤 다시 num2에 저장(2를 감소시킴)

    printf("%d\n", num1);    //  3
    printf("%d\n", num2);    // -1

    return 0;
}

실행 결과

3
-1

num1 += 2;는 덧셈과 할당 연산을 동시에 처리하여 변수 num1을 2 증가시킵니다. 즉, num1 = num1 + 2;의 축약형입니다.

num2 -= 2;는 뺄셈과 할당 연산을 동시에 처리하여 변수 num2를 2 감소시킵니다. 마찬가지로 num2 = num2 - 2;의 축약형입니다.

참고로 num1 += num2 또는 num1 = num1 + num2와 같이 모두 변수를 사용하여 연산해도 상관없습니다.