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 |