본문 바로가기

P-Language/JAVA

Operator

0. 연산자 Operator

어떠한 기능을 수행하는 기호

 

-피연산자 Operand

연산자의 작업대상 (변수, 상수, 리터럴, 수식)

 

0.1 연산자의 종류 (우선순위가 높은 순)

단항 연산자(진행방향 <-)

산술 연산자(진행방향 ->)

비교 연산자(진행방향 ->)

논리 연산자(진행방향 ->)

삼항 연산자(진행방향 ->)

대입 연산자(진행방향 <-)

 

*우선순위

1) 괄호의 우선 순위가 제일 높다

2) 단항 > 이항 > 삼항

3)  <<, >>, >>>는 덧셈연산자보다 우선순위가 낮다.

4) ||, |(OR)는 &&, &(AND)보다 우선순위가 낮다.

 

1. 단항연산자.

1.1 증감연산자 ++,--

증가 연산자 (++) : 피연산자의 값을 1 증가시킨다.

감소 연산자 (--) : 피연산자의 값을 1 감소시킨다.

 

boolean형을 제외한 모든 기본형 변수에 사용이 가능.

피연산자의 왼쪽에 사용하는 전위형과, 오른쪽에 사용하는 후위형이 있다.

 

전위형 : 값이 참조되기 전에 증가시킨다.

후위형 : 값이 참조된 후에 증가시킨다.

 

1.2 부호 연산자 + -

피연산자의 부호를 변경하는데 사용, boolean형과 char형을 제외한 나머지 기본형에 사용가능.

부호 연산자 '+'의 경우는 피연산자에 양수 1을 곱한 결과를, 그리고 '-'의 경우는 피연산자에 음수 1을 곱한 결과를 얻는다.

 

1.3 비트전환 연산자 ~

정수형과 char형에만 사용될 수 있으며, 피 연산자를 2진수로 표현했을 때 0은 1로, 1은 0으로 바꾼다.

연산자 ~ 에 의해 비트전환 되고 나면 피연산자의부호가 반대로 변경된다.

*byte, short, char형은 int형으로 변환된 후에 전환된다.

 

1.4 논리부정 연산자 !

boolean형에만 사용할 수 있으며, true는 false로, false는 true로 변경한다.

조건문과 반복문의 조건식에 사용되어 조건식을 보다 효율적으로 만들어 줌.

 

2. 산술연산자

모두 두개의 피연산자를 취하는 이항 연산자. 크기가 4byte보다 작을 경우 int형으로 변환 후 연산을 수행함.

피연산자들의 타입을 서로 일치시킨 후 연산을 수행함.

 

2.1 사칙연산자 +,-,/,*

1) int형 보다 크기가 작은 자료형은 int형으로 형변한 후에 연산을 수행

2) 두 개의 피연산자 중 자료형의 표현범위가 큰 쪽에 맞춰서 형변환 된 후 연산을 수행.

3) 정수형 간의 나눗셈에서 0으로 나누는 것은 금지되어 있다.

 

2.2 나머지 연산자 %

왼쪽의 피연산자를 오른쪽 피연산자로 나누고 난 나머지 값을 돌려주는 연산자.

boolean을 제외한 기본형 변수에 사용가능.

피연산자가 정수형인 연산에서는 나누는 수 로 0을 사용 못하고, 0.0이나 0.0f로 나누는 것은 허용.

 

2.3 쉬프트 연산자 <<,>>,>>>

정수형 변수에만 사용가능. 피연산자의 각 자리(2진수로 표현했을 때)를 오른쪽 또는 왼쪽으로 이동한다고 해서 쉬프트 연산자라고 함.

x <<n 은 x*2^n 의 결과와 같다.
x >>n 은 x/2^n 의 결과와 같다.

<<의 경우 피연산자의 부호 상관없이 자리를 왼쪽으로 이동시키며 빈캌을 0으로 채움

>>의 경우 오른쪽으로 이동시키기 때문에 음수인 경우 부호를 유지시켜주기 위해서 빈자리를 1로 채우게 된다.

>>>연산자는 부호에 상관없이 항상 0으로 빈자리를 채운다.

 

2.4 비교연산자

두 개의 변수 또는 리터럴을 비교하는데 사용되는 연산자.

조건문과 반복문의 조건식에 사용, 연산결과는 true / false임.

자료형의 범위가 큰 쪽으로 형변환 하여 피연산자의 타입을 일치시킨 후에 비교함.

 

2.4.1 대소비교 연산자 < > <= >=

두 연산자의 크기를 비교하는 연산자.

boolean을 제외한 나머지 자료형에 모두 사용할 수 있으나, 참조형은 사용 불가.

 

2.4.2 등가비교 연산자 ==, !=

두 피연산자에 저장되어 있는 값이 같은지 또는 다른지를 비교하는 연산자.

기본형은 물론 참조형에도 사용 가능.

기본형 - 변수에 저장되어 있는 값이 같은지를 알 수 있다.

참조형 - 객체의 주소값을 저장하기 때문에 두 개의 피연산자(참조변수)가 같은 객체를 가리키고 있는지를 알 수 있다.

 

2.5

2.5.1 논리연산자 && ||

피연산자로 boolean형 또는 boolean형 값을 결과로 하는 조건식만을 허용.

조건문과 반복문에서 조건식 간의 결합에 사용

 

'&&'가 '||' 보다 우선순위가 높다.

 

||(OR결합) - 피연산자 중 어느 한 쪽만 true이면 true를 결과로 얻는다.

&&(AND결합) - 피연산자 양쪽 모두 true이어야 true를 결과로 얻는다.

 

2.5.2 비트 연산자 &, |, ^

이진 비트연산을 수행.

값을 이진수로 표현했을 때의 각 자리수를 규칙에 따라 연산을 수행함.

실수형인 float, double을 제외한 모든 기본형에서 사용가능.

 

| (OR연산자) - 피연산자 중 한 쪽의 값이 1이면, 1을 결과로 얻는다. 그 외에는 0을 얻는다.

&(AND연산자)- 피연산자 양 쪽이 모두 1이어야 1을 결과로 얻는다. 그 외에는 0을 얻는다.

^(XOR연산자)- 피연산자의 값이 서로 다를 때만 1을 결과로 얻는다. 같을 때는 0을 얻는다.

 

2.6 그 외의 연산자

2.6.1 삼항 연산자 ? :

세 개의 피연산자를 필요로 함.

조건식과 조건식이 참일때와 거짓일 때 반환되는 값, 이 세가지가 삼항 연산자의 피연산자.

조건식에는 연산결과가 true 또는 false인 식이 사용되어야 함.

조건식의 연산결곽 true이면 식1을 결과로 얻고, false이면 식2를 결과로 얻는다.

 

(조건식)? 식1 : 식2
result = (x>0) ? x : -x ;

if문으로 바꿔 쓸 수 있다.

result = (x>0) ? x : -x ;
-> 
if (x >0) {
result = x;
} else {
result= -x;
}

2.6.2 대입 연산자 =, op=

변수에 값 또는 수식의 연산결과를 저장하는데 사용.

대입 연산자의 왼쪽에는 반드시 변수가 위치해야 함.

오른쪽에는 리터럴이나 변수 / 수식이 올 수 있다.

 

변수 앞에 키워드를 붙이면 상수 constant가 된다.

상수는 선언과 동시에 값을 저장해야 하며 한 번 저장된 값은 바꿀 수 없다.

'P-Language > JAVA' 카테고리의 다른 글

배열 Array  (0) 2020.05.25
조건문 / 반복문  (0) 2020.05.22
Variable  (0) 2020.05.12