[Java] 단항 연산자

🌈 m1naworld ·2022년 11월 10일
0

자바를 잡아! 👻

목록 보기
11/19
post-thumbnail

단항 연산자

단항 연산자는 피연산자가 단 하나뿐인 연산자를 말한다.

  • 단항 연산자 종류



부호 연산자 (+, -)

부호 연산자는 양수 및 음수를 표시하는 +, -를 말한다. 부호 연산자는 변수의 부호를 유지하거나 변경할 때 사용하며 주의할 점은, 부호 연산자의 결과가 int 타입이라는 것이다.

// 잘못된 코딩 예시

byte b = 100;
byte result = -b;

위의 코드는 컴파일 에러가 발생한다. 부호 연산의 결과는 int 타입이므로 int 타입 변수에 저장해야 한다.

// 올바른 코딩 예시

byte b = 100;
int result = -b;

증감 연산자(++, --)

증감 연산자는 변수의 값을 1 증가, 감소 시키는 연산자를 말한다. boolean 타입을 제외한 모든 원시 타입의 피연산자에 사용할 수 있다. ++연산자증가연산자, --연산자감소연산자라고 부른다.


연산식에서 증감연산자만 사용된다면 증감연산자의 위치는 상관없다.

// 모두 i = i + 1;로 동일
++i;
i++;

// 모두 i = i -1;로 동일
--i;
i--;

❗️그러나 다른 연산자와 함께 사용할 경우, 증감 연산자의 위치에 따라 연산식의 결과가 다르게 나오므로 주의해야 한다.


예시)

int x = 1;
int y = 1;
int result1 = ++x + 10;  //결과값: 12 -(1)
int result2 = y++ + 10;  //결과값: 11 -(2)

// (1): x의 값이 1 증가한 후 연산을 수행하여 결과값 12가 도출된다.
// (2): 우선 y=1을 사용하여 다른 연산을 먼저 수행한 후 y의 값을 1 증가시킨다.

예시를 통한 결과값의 차이를 보면 알 수 있듯이, 증감 연산자가 변수 앞에 있을 경우 우선 변수값을 1 증가 또는 1 감소 시킨 후 다른 연산자를 처리한다. 반면, 증감 연산자가 변수 뒤에 있으면 다른 연산자를 먼저 처리한 후 변수 값을 1 증가 또는 1감소 시킨다.

++ii = i + 1의 연산 속도 차이
많은 사람들이 ++i= 연산자+ 연산자를 통한 두 번의 연산이 필요한 것이 아닌 ++ 연산자를 통한 한 번의 연산만 수행하기 때문에 연산 속도가 빠르다고 알고 있다. 하지만 컴파일해서 생성된 두 경우의 바이트 코드를 비교해보면 동일하다고 한다. 따라서 연산 속도 차이는 없다!


논리 부정 연산자(!)

논리 부정 연산자는 조건문과 제어문에서 조건식의 값을 부정하도록 하여 실행 흐름을 제어할 때 주로 사용한다. 또한 두 가지 상태(true/false)를 번갈아가며 변경하는 토글 기능을 구현할 때도 사용된다.



Ref.
책: 혼자 공부하는 자바

profile
개발자로 사는 내 삶은 즐거워 👾

0개의 댓글