3.2.6 대입 연산자

jh·2022년 1월 11일
0

Do it! 자바 완전 정복

목록 보기
19/70

대입 연산자(=)는 오른쪽 피연산자의 연산 결과를 왼쪽 변수에 대입하는 연산자로, 앞으로 가장 많이 사용하게 될 연산자 중 하나다. 예를 들어 a = 3이라는 코드는 오른쪽 값인 3을 변수 a에 대입하라는 명령이다. 그러면 a = a + 3을 살펴보자. 수학에서는 말이 되지 않는 수식이다. 이 세상 어떤 수도 자신과 자신에게 3을 더한 수가 같을 수는 없다. 하지만 자바 코드에서는 가능하다. 그 이유는 등호의 오른쪽이 먼저 계산되고, 이후 대입 연산자가 실행되기 때문이다.즉, a = a + 3은 a값에 3을 더한 후 그 결과를 다시 a에 대입하라는 의미다.

대입 연산자의 실행 순서

int a = 1; 
a = a + 3;
System.out.println(a);

1. a + 3 연산을 수행 
2. 1의 연산 결괏값을 a에 대입

대입 연산자는 다른 연산자와 결합해 축약된 형태로 사용될 수 있다. 일반 표현(a = a + 3)으로는 변수 a가 좌우에 존재하는데, 축약 형태는 이중 오른쪽의 A 하나를 없앤 형태다. 오른쪽 a 하나를 없애면 가운데는 연산자만 2개 남는데, 앞에서도 언급한 것처럼 등호(=)는 다른 연산자와 함께 있을 때 항상 오른쪽에 위치한다. 이렇게 만들어진 표현이 바로 다음의 축약 표현이다.

축약 표현은 단순히 수식만 간략화한 것이므로 실행 결과에는 아무런 영향을 미치지 않는다. 따라서 항상 일반 표현과 동일한 연산 결과가 나타난다.

실습

      // 대입 연산자와 축약 표현
      // @대입 연산자
      int value1 = 3;
      value1 = value1 + 3;
      System.out.println(value1);
      System.out.println();

      // @축약 표현
      int value2;
      value2 = 5; System.out.println(value2 += 2);
      value2 = 5; System.out.println(value2 -= 2);
      value2 = 5; System.out.println(value2 *= 2);
      value2 = 5; System.out.println(value2 /= 2);
      value2 = 5; System.out.println(value2 %= 2);
      value2 = 5; System.out.println(value2 |= 2);
      value2 = 5; System.out.println(value2 <<= 2);
      value2 = 5; System.out.println(value2 >>= 2);
      value2 = 5; System.out.println(value2 >>>= 2);

결과

profile
코딩 공부 중...

0개의 댓글