복합 대입 연산

복합대입 연산

이 문서에서는 복합대입 연산에 대해서 살펴본다.

복합대입이란

복합대입이란 단순한 대입이 아니라 기존의 값을 변화시키는 대입을 말한다. 한글로 표현하면 증가, 감소 등이 이에 해당한다.

복합대입 연산자

복합대입 연산자의 종류는 다음과 같다.

연산자

예시

설명

+=

a += n

a의 값을 n만큼 증가시킨다

-=

a -= n

a의 값을 n만큼 감소시킨다

*=

a *= n

a의 값을 n배 증가시킨다

/=

a /= n

a의 값을 1/n로 감소시킨다

%=

a %= n

a의 값에 n으로 나눈 나머지를 대입시킨다

복합대입 연산자 데모 1

import java.lang.*;

public class ComplexAssignmentOperatorExample1 {
    public static void main(String[] args){
        int a = 10;
        
        a += 5;
        System.out.println("a = " + a);
        
        a += 5;
        System.out.println("a = " + a);
        
        a += 5;
        System.out.println("a = " + a);
    }
}

실행 후 출력 결과는 다음과 같다.

a = 15
a = 20
a = 25

a += 5는 a에 5를 대입하는 것이 아니라 a를 5만큼 증가하도록 한다. 따라서 다음과 같은 식은 성립할 수 없다.

int a;
a += 5;//오류 발생 : a의 값이 없어서 증가시킬 수 없음

a의 값이 초기화되지 않았기 때문에 5를 증가시키는 것은 불가능하다.

복합대입 연산자 데모 2

import java.lang.*;

public class ComplexAssignmentOperatorExample2 {
    public static void main(String[] args){
        byte a = 10;
        
        a += 5;
        System.out.println("a = " + a);
        
        //a = a + 5;//오류 발생
        a = (byte)(a + 5);
        System.out.println("a = " + a);
    }
}

복합 대입 연산의 장점 중 하나는 자료형을 유지시키며 연산을 수행한다는 것이다. 산술 연산인 +를 사용하면 정수의 특징 중 하나인 int보다 작은 값의 연산은 결과가 int라는 성질 때문에 계산 과정이 매우 복잡해진다. 따라서 복합 대입 연산을 사용하면 산술 연산을 사용하여 구현한 것보다 성능상의 이점을 가질 수 있다.

Last updated