[스터디]Java의 정석 4일차

Kristopher·2021년 12월 30일
0

Java 스터디

목록 보기
4/31

(Ch3) 2. 단항 연산자 ~ (CH3) 6.2 대입 연산자

증감 연산자

증감연산자에는 크게 두가지 종류가 존재한다. 값이 참조되기 전 증감시키는 전위형(prefix)과 값이 참조된 후 증감시키는 후위형(postfix)이 그것이다. 두가지 방법은 수식이나 메소드에 포함된 경우에는 결과에 차이를 불러오지만 독립적으로 사용할 때는 차이를 보이지 않는다.
주의해야할 점은 식에 증감연산자가 두번 이상 포함된 경우 코드가 복잡해져 이해하기 어렵기 때문에 최대한 지양해야 한다.

사칙 연산자 / 비교 연산자

사칙연산은 수학에서 배운 것과 동일하므로 크게 주의할점이 없다. 다만 컴퓨터에는 자료형이라는 것이 존재하기 때문에 같은 숫자라도 자료형이 다르면 다르다고 보아야 한다. 그렇기에 사칙 연산시 타입을 고려하여 적절한 형변환을 해줄 필요가 있다. 그렇지 않으면 오버플로우 등의 문제가 발생할 수 있다.

논리 연산자

|| ( OR ) : 피연산자 중에서 한 쪽만 true여도 true값 반환
&& ( AND ) : 피연산자 모두 true여야 true 결과 반환

논리 연산자는 개념상 크게 어려울 것이 없지만 효율적으로 처리하기 위해 적절한 순서를 고려할 필요가 있다. OR의 경우 피연산자 하나만 true여도 true값을 반환하기 때문에 좌측 피연산자가 true일시 우측 피연산자를 다루지 않는다. AND의 경우는 반대로 좌측 피연산자가 false인 경우에 우측 피연산자를 다루지 않는다. 실제로 실행시키지도 않기 때문에 피연산자 자리에 값을 변화시키는 형태가 들어간다고 해도 값이 변하지 않는다.

비트 연산자

| (OR) : 피연사자 중 하나의 값이 1이면 1을 결과로 갖는다. o.w 0
& ( AND ) : 피연사자 모두 1이여야 1을 결과로 갖는다. o.w 0
^ ( XOR ) : 피연산자 값이 서로 다를 때 1을 결과로 갖는다. o.w 0
~ : 비트 전환 연산자. 부정의 기능을 담당한다.

쉬프트 연산자(Shift Operator)

">>" : 부호를 유지하기 위해 이동 후 빈자리는 1로 채운다.
"<<" : 피연산자 부호에 상관없이 각 자리를 왼쪽으로 이동시킨다. 이동 후 빈자리는 모두 0으로 채운다.
(EX)
x<<n의 결과는 x*2^n한 결과와 같다.
x>>n의 결과는 x/2^n한 결과와 같다.

조건 연산자

(조건) ? ( true인 경우 반환 값) : (false인 경우 반환 값);
(EX)
result = (x>y) ? y : x;

복합 대입 연산자

op= 방식= 방식
i += 4;i = i+4;
i *= 4;i = i*4;
i <<= 4;i = i<<4;
i &= 4;i = i&4;
i *= 8 +k;i = i*(8+k);

복합 대입 연산자를 사용할 때에는 연속된 두 연산자를 반드시 붙여서 사용해야 한다. 마지막 예시 같은 경우 'i = i*8 +k'가 아님은 주의해야 한다.

Reference

Java의 정석
남궁성의 정석코딩

profile
개발자 지망생입니다.

1개의 댓글

comment-user-thumbnail
2022년 1월 8일

좋은글!

답글 달기