Java의 += 연산자


발생하는 문제 및 실행환경

제가 알기론 i += j;랑 i=i+j랑 같은 뜻이라고 알고있었는데

    int i = 5;
    long j = 8;

일때 i = i+j; 하면 컴파일이 안되고 i+=j;하면 잘 실행되는데 왜그런지 궁금합니다.

  • 2016년 01월 05일에 작성됨

조회수 295


1 답변


좋아요
0
싫어요
채택취소하기

그건 JLS([link][jls])를 보시면 아는데 E1 += E2 같은 복합 대입 연산자는 E1 = (E1의 자료형)((E1) op (E2))로 해석 돼요. 그래서 컴파일할때 문제가 없는거죠. 예를 들어

    short x = 3;
    x += 4.6;

    short x = 3;
    x = (short)(x + 4.6);

같은 식으로 바뀌는거죠.

  • 2016년 01월 05일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close