모든 연산자 중에서 우선순위가 가장 낮기 때문에 모든 계산이 끝난 후 마지막에 수행된다.
| 종류 | 연산자 | 예시 | 동일한 표현 |
|---|---|---|---|
| 단순 대입 | = |
a = 10 |
a = 10 |
| 복합 대입 | +=, -= |
a += 5 |
a = a + 5 |
*=, /=, %= |
a *= 3 |
a = a * 3 |
|
&=, ^=, ` |= | a &= 2` |
|||
<<=, >>=, >>>= |
a <<= 1 |
a = a << 1 |
변수 이름이 매우 길 경우, 복합 대입 연산자를 쓰면 실수를 줄이고 코드를 깔끔하게 유지할 수 있다.
// 일반 대입
userScoreCurrentLevelForPlayerOne = userScoreCurrentLevelForPlayerOne + 100;
// 복합 대입 (훨씬 명확함)
userScoreCurrentLevelForPlayerOne += 100;
복합 대입 연산자는 내부적으로 강제 형변환을 포함하고 있다. 일반 연산에서는 컴파일 에러가 날 상황도 복합 대입은 통과시켜 준다.
int i = 10;
byte b = 5;
// b = b + i; // 컴파일 에러! (int 결과를 byte에 담을 수 없음)
b += i; // 정상 동작! (내부적으로 b = (byte)(b + i)로 처리됨)
대입 연산자는 특이하게 오른쪽에서 왼쪽으로 연산이 진행된다.
int a, b, c;
a = b = c = 10; // c, b, a 순서대로 대입
+= 등)는 코드를 간결하게 하며 자동 형변환 기능이 내포되어 있다.