글 작성자: 취업중인 피터팬
728x90
기본 환경
JDK : 1.8.0_261 버전
JRE : 1.8.0_261 버전
JAVA VERSION : 8 업데이트 261
Eclipse IDE VERSION : 2020-06버전

 

목표

자바에서 사용하는 복합대입 연산자에 대해 이해한다.


 

 

코드
package ex03operator;

public class E02BokhapOperator {
	
	/*
		복합대입연산자 
			: 산술연산자와 대입연산자를 연결해놓은 형태로
			좌우측의 값을 연산하여 좌측의 변수에 대입하는
			형태의 구조를 가진다. 문법구조상 항상 현재 타입을 
			유지하는 특성을 가지고 있다.
	 */

	public static void main(String[] args) {
		double e = 3.1;
		e += 2.1;
		e *= 2;
		//e = e + e;
		e += e;
		System.out.println("e의 결과값 : " + e);
		
		int n = 5;
		//n =n * 2.7;
		n =(int)(n * 2.7); // 명시적 형 변환 후 int 형 변수에 대입함
		System.out.println("n의 결과값 : " + n);
		
		n *= 2.7;/*
						정상 실행됨. 복합대입연산자는 문법의 구조상
						기존 자료형을 그대로 유지하는 특성을 가지고 있음.
						따라서 결과는 정수인 35가 되고, 소수이하는 버려짐.
		 			*/
		
		System.out.println("n의 결과값 : " + n);
		
	}

}

 개발자들은 귀찮은것은 못견딥니다. 한자라도 덜 쓰기 위해 만들어진게 복합 대입 연산자 입니다. 간당히 말해서 n = n + 2을 n += 2 로 바꾼겁니다. 중요한 것은 형타입니다. 다른 타입끼리 계산한 결과를 강제 형변환 없이 작은 크기에 초기화 한다면 원래는 에러가 나지만 복합형변환는 문법상 기존 자료형을 그대로 유지하기 때문에 오류가 나지 않고 저절로 강제 형변환이 됩니다.

 

결과값