3. 단항 연산자

고은·2022년 7월 31일
0

자바 초보 탈출기

목록 보기
10/14

단항 연산자

단항 연산자는 피연산자가 하나뿐인 연산자를 말하며, 여기에는 부호연산자 (+,-), 증감 연산자(++,--), 논리 부정 연산자 (!), 비트 반전 연산자 (~)가 있다.

부호 연산자(+,-)

부호 연산자는 양수 및 음수를 표시하는 +,-를 말한다. boolean 타입과 char 타입을 제외한 나머지 기본 타입에 사용할 수 있다.

+,-는 산술 연산자이기도 하고, 부호 연산자이기도 하다.
부호 연산자로 쓰일 때에는 하나의 피연산자만 필요하다.
일반적으로 부호 연산자를 정수 및 실수 리터럴 앞에 붙여 양수 및 음수를 표현한다.

부호 연산자를 정수 또는 실수 타입 변수 앞에 붙일 수도 있다.
이 경우는 변수를 양수 및 음수로 표현한 것이 아니고, 변수 값의 부호를 유지하거나 바꾸기 위해 사용된다. + 연산자는 변수 값의 부호를 유지한다. - 연산자는 변수 값의 부호를 양수는 음수로, 음수는 양수로 바꾼다.

부호 연산자를 사용할 때 주의할 점은 부호 연산자의 산출 타입은 int 타입이 된다는 것이다.
ex) short x = 10;
short result = -x; (컴파일 에러)
int result = -x; (int 타입으로 변경해야함 )

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

증감 연산자는 변수의 값을 1증가(++) 시키거나 1 감소(--)시키는 연산자를 말한다.
boolean 타입을 제외한 모든 기본 타입의 피연산자에 사용할 수 있다.

연산식에서 증감 연산자만 있는 경우에는 증감 연산자가 변수 앞 또는 뒤 어디든 위치해도 상관없다.
하지만 다른 연산자와 함께 사용하는 연산식에서는 증감 연산자의 위치에 따라 연산식의 결과가 다르게 나오므로 주의해야 한다.


( 전위 : 출력 전에 연산 /  후위 : 출력 후에 연산)

ex) int x = 1;
int y = 1;

int result1 = ++x + 10;
int result2 = y++ + 10;
(->int result2 = y + 10; y++;)

-> result1 = 12 / result2 = 11

논리 부정 연산자 (!)

boolean 타입에만 사용 가능

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

비트 반전 연산자 (~)

정수 타입 (byte, short, int, long)의 피연산자에만 사용되며, 피연산자를 2진수로 표현했을 때 비트값인 0을 1로, 1은 0으로 반전한다. 연산 후 부호 비트인 최상위 비트를 포함해서 모든 비트가 반전되기 때문에, 부호가 반대인 새로운 값이 산출된다.

비트 반전 연산자 산출 타입 = int
(반드시 연산 수행 전 타입 변경하기)

비트 반전 연산자의 결과를 이용하면 부호가 반대인 정수를 구할 수도 있다.
물론 간단하게 부호 연산자를 이용해도 되지만, 비트 반전 연산자의 산출값에 1을 더하면 부호가 반대인 정수 출력 가능

profile
비전공자 코린이의 개발 일지 🏋️‍♀️

0개의 댓글