1. 연산자: ~= += -= *= /= %= |= ^= &= <<= >>= **=
2. 형 식: operand1 연산자 operand2
operand1: 기억할 변수
operand2: 상수, 변수, 연산식
3. 설 명: operand2의 값을 operand1에 계산후 대입(기억)한다. 연산순위는
대입문과 동일하며 특정 계산을 한 후에 그 결과를 저장하는 것이
대입문과 다르다.
<예제>
a= 10; // a에 10 이 기억된다.
b= a; // b에 a의 값 10 이 기억된다.
b+= a; // b= b + a의 계산을 하여 결과 20 을 b에 저장한다.
b*= a+10; // + 보다 *= 가 연산순위가 낮기 때문에 + 를 먼저 계산한다.
// 즉 b= b * (a+10)의 결과 400 이 b에 기억된다.
a= 5; // a에 5 가 기억된다.
a-= 2; // a=a-2 를 하여 3 이 a에 기억된다.
a/= a; // a= a / a를 하여 1 이 a에 기억된다.
a%= a; // a= a % a를 하여 1 을 1 로 나눈 나머지 0 이 a에 기억된다.
a= 2; // a에 2 가 기억된다.
a**=3; // a= a ** 3 을 하여 2 의 3 승의 값 8 이 a에 기억된다.
a= "SEOUL";
a~= "&PUSAN"; // a=a~"&PUSAN"을 의미하며 "SEOUL&PUSAN"이 a에 기억됨
a= 1;
a*= a**= a+= 1; // a+=1 의 값은 2 이며 a**=2(a=a**2)의 값은 4 이다.
// a*=4(a=a*4)의 값은 16 이며 a에 16 이 기억된다.
< a*= a**= a+= 1; 의 추가 설명 >
a= 1;
a*= a**= a+= 1;
(1) a*= a**= a= a + 1 --> 대입문은 오른쪽에서 왼쪽으로 풀이를 함
2= 1 + 1 --> a에 2 가 기억됨
(2) a*= a**= 2 ---------> a+=1을 한 결과값인 2 가 남은 연산에 참여함
a*= a= a ** 2 ------> 현재의 a값(2)에 2 를 거듭제곱
4= 2 ** 2 ------> 현재 a는 1 이 아니라 2 임, 결과 4 가 a에 기억됨
(3) a*= 4 -------------> a**=2의 결과값인 4 가 남은 연산에 참여함
a= a * 4 ----------> 현재의 a값(4)에 4 를 곱셈
16= 4 * 4 ----------> 마지막으로 16 이 a에 기억됨
<Bit 연산자 및 Shift 연산자 산술 혼합 연산자 예제>
※ Bit 연산자와 Shift 연산자에 대한 설명을 참고 하세요
a= 1;
b= 3;
c= 5;
a&= 3; --> a= a & 3 을 의미하며 1 & 3 의 결과 1 이 a에 기억 됨
b|= 4; --> b= b | 4 을 의미하며 3 | 4 의 결과 7 이 b에 기억 됨
c^= 3; --> c= c ^ 3 을 의미하며 5 ^ 3 의 결과 6 이 c에 기억 됨
a= 1;
b= 8;
a<<= 2; --> a= a<<2 를 의미하며 1 << 2 의 결과 4 가 a에 기억 됨
b>>= 1; --> b= b>>1 을 의미하며 8 >> 1 의 결과 4 가 b에 기억 됨
|