[JAVA] 8. 연산자

2015. 4. 21. 19:49프로그래밍/JAVA

    목차

연산자란?

 

- 연산자(operator)란 특정한 작업을 하기 위해서 사용하는 기호를 의미한다.

- 피연산자란, 연산자의 작업대상을 말한다.(변수, 상수, 수식, 리터럴)



종류


단항연산자

+

 부호연산자

 

-

 부호연산자

 

 ++

 증가연산자

 피연산자의 값을 1 증가 시킨다.

 --

 감소연산자

 피연산자의 값을 1 감소 시킨다.

 ~

 비트전환연산자

 피연산자가 가지는 bit 값을 반전 시킨다.

 !

 부정연산자

 boolean Type 피연산자의 값을 반전 시킨다.

 (데이터타입)

 형변환연산자

 () 안에 데이터 타입으로 피연산자의 값을 변환 시킨다.

- 증가, 감소 연산자는 피연산자를 기준으로 앞 or 뒤에 위치할 수 있으며, 위치에 따라서 전위형, 후위형으로 불린다.

    

ex) 전위형 - 피연산자의 값이 참조 되기 전에 피연사자의 값을 1 증가 시킨다.

int num1 = 1;

int num2 = 0;


num2 = ++num1;


(결과)

num1 : 2

num2 : 2


ex) 후위형 - 피연산자의 값을 먼저 참조 되는 곳에 넘겨 후 피연산자의 값을 1 증가 시킨다.

int num1 = 1;

int num2 = 0;


num2 = num1++;


(결과)

num1 : 2

num2 : 1



이항연산자

이항연산은 연산을 수행하기 이전에 연산자 양쪽에 있는 피연산자의 데이터타입을 일치 시킨 이후에 연산을 수행한다.

데이터타입을 일치 시킬 경우에 데이터를 표현할 수 있는 범위가 더 큰 데이터타입으로 자동으로 변환하게 된다.

단, int형 보다 표현범위가 작은 데이터타입은 int형으로 변환된다.


-산술연산자

boolean 타입을 제외한 7가지의 기본형 데이터타입만 사용

 +

 더하기연산자

 연산자 양쪽에 있는 피연산자의 값을 더하여 준다.

 -

 빼기연산자

 연산자 양쪽에 있는 피연산자의 값을 빼준다.

 *

 곱하기연산자

 연산자 양쪽에 있는 피연산자의 값을 곱해 준다.

 /

 나누기연산자

 연산자 양쪽에 있는 피연산자의 값을 나누어 몫을 준다.

 %

 나머지연산자

 연산자 양쪽에 있는 피연산자의 값을 나누어 나머지를 준다.

ex)

'+' : 2 + 2 ==? 4

'-' : 2 - 2 ==> 0

'*' : 2 * 2 ==> 4

'/' : 9 / 2 ==> 4

'%' : 9 % 2 ==> 1



-결합연산자

두개의 피연산자중 반드시 하나 이상의 피연산자가 문자열이어야 한다

+

 문자열 결합 연산자

 피연산자 중 문자열이 아닌 피연산자는 문자열로 형변환하여 양쪽에 피연산자의 값을 연결하여 문자열로 반환한다 

ex) 

"10" + 1 ==> "101"

10 + 10 + "20" ==> "2020"



-대소비교연산자 & 등가비교연산자

대소비교연산자는 기본형 데이터타입 8가지 중 boolean 타입을 제외한 7가지 데이터타입에만 사용할 수 있다.

<

 대소비교연산자

 연산자를 기준으로 좌측에 피연산자의 값이 작을 경우 true

 >

 연산자를 기준으로 좌측에 피연산자의 값이 큰 경우 true

 <=

 연산자를 기준으로 좌측에 피연산자의 값이 작거나 같은 경우 true

 >=

 연산자를 기준으로 좌측에 피연산자의 값이 크거나 같은 경우 true

 ==

 등가비교연산자

 연산자를 기준으로 좌우에 피연산자의 값이 같은 경우 true

 !=

 연산자를 기준으로 좌우에 피연산자의 값이 같지 않은 경우 true

 instanceof

 instanceof 연산자

 연산자를 기준으로 좌측에 피연산자(참조변수)가 우측 데이터타입으로 형 변환 가능하면 true

ex)

if(10 < 11) ==> true

if(10 > 11) ==> false

if(10 <= 11) ==> true

if(10 >= 11) ==> true

if(10 == 11) ==> false

if(10 != 11) ==> true


ex) instanceof

class Parent {}

class Child extends Parent {}

Child c = new Child();

if(c instanceof Child){} ==> true

if(c instanceof Parent){} ==> true

if(c instanceof Object){} ==> true




-비트연산자

 &

 비트곱연산

 좌우측에 피연산자의 비트값을 곱셈연산한 결과를 반환한다

 |

 비트합연산

 좌우측에 피연산자의 비트값을 합한 결과를 반환한다

 ^

 배타적비트합

 좌우측에 피연산자의 비트값을 배타적 합한 결과를 반환한다

ex)

& 연산


| 연산


^ 연산




-논리연산자

연산자를 기준으로 좌우에 피연산자의 값을 boolean 데이터타입 형태의 값만 위치할 수 있다.

 &&

 논리곱연산

 좌우에 피연산자의 값이 모두 true 일 경우에 true반환

 ||

 논리합연산

 좌우에 피연산자의 값이 한쪽이라도 true 일 경우에 true반환

ex)

&& 연산


|| 연산


  • 삼항연산자

수식 ? true : false

 삼항연산자

 수식에 결과 값이 true이면 true 위치에 값을 반환, false이면 false위치 값을 반환 해준다 

ex)




  • 복합대입연산자

=

 단순 대입연산자

 우측에 피연산자의 값을 좌측에 피연산자에 대입한다

+=

 복합 대입연산자 

 좌측에 피연산자의 값에 우측에 피연산자의 값을 더하여 좌측 피연산자에 대입한다 

-=

 좌측에 피연산자의 값에 우측에 피연산자의 값을 빼서 좌측 피연산자에 대입한다 

*=

 좌측에 피연산자의 값을 우측에 피연산자의 값을 곱하여 좌측 피연산자에 대입한다 

/=

 좌측에 피연산자의 값에 우측에 피연산자의 값을 나눈 몫값을 좌측 피연산자에 대입한다 

%=

 좌측에 피연산자의 값에 우측에 피연산자의 값을 나눈 나머지값을 좌측 피연산자에 대입한다 

<<=

 좌측에 피연산자의 값을 우측에 피연산자의 값만큼 좌측으로 비트이동 후 좌측 피연산자에 대입한다 

 >>=

 좌측에 피연산자의 값을 우측에 피연산자의 값만큼 우측으로 비트이동 후 좌측 피연산자에 대입한다 

&= 

 좌측에 피연산자의 값과 우측에 피연산자의 값을 비트곱 연산한 결과값을 좌측 피연산자에 대입한다 

 |=

 좌측에 피연산자의 값과 우측에 피연산자의 값을 비트합 연산한 결과값을 좌측 피연산자에 대입한다  

 ^=

 좌측에 피연산자의 값과 우측에 피연산자의 값을 배타적비트합 연산한 결과값을 좌측 피연산자에 대입한다 

ex)

- //를 기준으로 우측에 식과 좌측에 식은 동일한 결과를 가진다.

a += b; // a = a + b;

a -= b; // a = a - b;

a *= b; // a = a * b;

a /= b; // a = a / b;

a %= b; // a = a % b;

a <<= b; // a = a << b;

a >>= b; // a = a >> b;

a &= b; // a = a & b;

a |= b; // a = a | b;

a ^= b; // a = a ^ b;



'프로그래밍 > JAVA' 카테고리의 다른 글

[정규표현식] java Regular Expression  (0) 2015.12.10
Java 이전 버전 다운로드 URL  (0) 2015.09.10
[JAVA] 7. 배열  (0) 2015.01.07
[JAVA] 6. 형변환(Casting)  (0) 2014.12.24
[JAVA] 5. 데이터타입이란?  (0) 2014.12.23