Chapter03 연산자(operator)

cookienc·2021년 6월 20일
0

Java 기본 개념

목록 보기
2/13
post-thumbnail

1. 연산자(operator)

연산을 수행하는 기호

1.1 연산자와 피연산자

  • 연산자 : 연산을 수행하는 기호
  • 피연산자 : 연산자의 작업 대상

1.2 식과 대입연산자

  • 식 : 연산자와 피연산자를 조합하여 계산하고자하는 바를 표현한 것, 끝에 ';'를 붙힌다.
  • 대입연산자 : '=', 변수와 같이 값을 저장할 수 있는 공간에 결과를 저장

1.3 연산자의 종류

종류연산자설명
산술 연산자+ - * / % << >>사칙 연산(+,-,*,/)과 나머지 연산(%)
비교 연산자> < >= <= == !=크고 작음과 같고 다름을 비교
논리 연산자&& || ! & | ^ ~'그리고(AND)'와 '또는(OR)'으로 조건을 연결
대입 연산자=우변의 값을 좌변에 저장
기 타(type) ?: instanceof형변환 연산자, 삼항 연산자, instanceof 연산자

1.4 연산자의 우선순위와 결합규칙

  1. 산술>비교>논리>대입
  2. 단항>이항>삼항
  3. 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽이다.

-> 헷갈릴수 있으므로 괄호('(', ')')를 사용하여 우선수위를 나타내는것이 낫다.

1.5 산술 변환

두 피연산자의 타입이 일치해야 연산이 가능하므로, 일반적으로 두 피연산자 타입 중 더 큰 타입으로 일치시켜준다.( int보다 작은 타입일 경우 int로 변환 )



2. 단항 연산자

2.1 증감 연산자 ++ --

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

타입설명사용 예
전위형값이 참조되기 전에 증가시킨다.j = ++i;
후위형값이 참조된 후에 증가시킨다.j = i++;
가운데

cf) 식에 두 번 이상 포함된 변수에 증감연산자를 사용하는 것을 피해야 한다.

2.2 부호 연산자 + -

부호 연산자 '-'는 피현산자의 부호를 반대로 변경한다.



3. 산술 연산자

3.1 사칙 연산자 + - * /

  • / 연산자가 + - 연산자 보다 우선순위가 높다.

3.2 나머지 연산자 %

왼쪽의 피연사자를 오른쪽 피연산자로 나누고 난 나머지 값을 결과로 반환한다(오른쪽 피연사의 부호는 무시한다.).



4. 비교 연산자

연산결과는 true와 false 중 하나이다.

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

4.2 등가비교 연산자 == !=

cf) equals() : 문자열 비교
    equalsIgnoreCase() : 문자열 비교(대소문자 비교 x)



5. 논리 연산자

5.1 논리 연산자 - &&, ||, !

&& : 피연산자 양쪽 모두 true이면 true를 결과로 얻는다.
|| : 피연사 중 하나만 true 여도 true를 결과로 얻는다.
! : 피연산자가 true이면 false를, false이면 true를 반환한다.

&&과 ||을 효율적인 연산을 하므로, 왼쪽에서 먼저 계산한 값에 따라 뒤쪽에있는 연산이 진행이 안될수도 있다.

5.2 비트 연산자 & | ^ ~ ! << >>

& : 피연산자 모두 값이 1이면 결과를 1로 반환
| : 피연산자 중 한 쪽의 값이 1이면 결과를 1로 반환
^ : 피연산자의 값이 서로 다르면 결과를 1로 반환
~ : 피연사자를 2진수로 표현했을때, 0->1로 1->0으로 바꾼다.
<< : 피연산자를 2진수로 표현했을때, 왼쪽으로 이동을 시킨다. 저장범위가 넘어난 값들은 버려지고 빈자리는 0으로 채워진다.
>> : 피연산자를 2진수로 표현했을때, 오른쪽으로 이동을 시킨다. 저장범위가 넘어난 값들은 버려지고 빈자리는 0으로 채워진다. 음수일때는 1로 채워진다.

x<<n은 x*2^n과 같다
x>>n은 x/2^n과 같다



6. 그 외의 연산자

6.1 조건 연산자 ? :

조건식 ? 식1 : 식2

조건식이 참이면 식1, 거짓이면 식2를 실행한다.

6.2 대입 연산자 =   op=

복합 대입 연산자

연산자(op)와 결합한 'op ='형태이다.
ex) i += 3; -> i = i + 3;

0개의 댓글