JAVA/연산자

단항 연산자

yayeun 2017. 1. 24. 20:16

부호 연산자 (+, -)

: boolean 타입과 char 타입을 제외한 나머지 타입에 사용할 수 있다.

: 변수 값의 부호를 유지하거나 바꾸기 위해 사용 (양수는 음수로, 음수는 양수로)

  - 산출 타입은 int 타입


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

: 변수의 값을 1 증가(++) 시키거나 감소(--) 시키는 연산자

  - boolean 타입을 제외한 모든 기본타입의 피연산자에 사용할 수 있다.


연산식 

설명 

 ++ 

 피연산자 

 다른 연산을 수행하기 전에 피연산자의 값을 1 증가시킴 

 --

 피연산자 

 다른 연산을 수행하기 전에 피연산자의 값을 1 감소시킴 

 피연산자

 -- 

 다른 연산을 수행한 후에 피연산자의 값을 1 증가시킴 

 피연산자 

 ++ 

 다른 연산을 수행한 후에 피연산자의 값을 1 감소시킴


1
2
3
4
int i = 9;
++i  // 10 : 연산을 수행하기 전에
i++  // 10 : 연산을 수행한 후에 (수행한 후에는 11이 됨)
++i  // 12 : 연산을 수행하기 전에 (수행한 후의 i 값은 11 이므로 ++하면 12)
cs


* 보통 ++i 가 i=i+1 보다 연산속도가 빠르다고 하지만 실제 컴파일하면 동일한 바이트 코드가 생성된다.

  그래서 어느것이 더 빠르다고 볼 수는 없다.



논리 부정 연산자(!)

: true 를 false로, false 를 true 로 변경하기 때문에 boolean 타입만 사용가능하다.

1
2
3
boolean play = true;        
play = !play;  // false
play = !play;  // true
cs


비트 반전 연산자(~)

: 정수 타입(byte, short, int, long) 의 피연산자에만 사용가능

  - 피연산자는 연산을 수행하기전에 int 타입으로 변환되고, 비트 반전이 일어난다.

1
2
byte b = 10;
int i = ~b;  //-11
cs