초보 개발자의 기록

연산자(Operator) 본문

JAVA/Basic

연산자(Operator)

bambinodeveloper 2021. 8. 2. 22:24
728x90

연산자와 피연산자 

- 연산자(operator) : 연산을 수행하는 기호

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

- 연산자는 피연산자로 연산을 수행 후 항상 결과값을 반환

 

연산자의 종류

종류 연산자 설명
산술 연산자 + - * / % << >> 사칙연산, 나머지 연산
비교 연산자  > < >= <= == != 크고 작음 같고 다름 비교
논리 연산자  && & || | ! ^ ~ 그리고(and) , 또는 (or)
대입 연산자  = assign 할당
기타 (type) ?: instanceof 형변환 연산, 삼항연산, instanceof 연산

 

단항 연산자 

- 증감 연산자 ++ --

   증가 연산자(++) :  피연산자의 값을 1증가 

   감소 연산자(--) : 피연산자의 값을 1 감소

- 일반적으로 단항 연산자는 피연산자의 왼쪽에 위치. 증가 연산자, 감소 연산자는 양쪽 모두 가능

- 피연산자의 왼쪽에 위치하면 전위형(prefix) , 오른쪽에 위치하면 후위형(postfix) 이라함

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

   후위형(postfix) : 값이 참조된 후에 증가시킨다

- 하나의 식에서 증감 연산자의 사용을 최소화. 식에 두번 이상 포함된 변수에 증감연산자를 사용하는 것은 지양

 

- 부호 연산자 + - 

- 부호 연산자 - 는 피연산자의 부호를 반대로 변경한 결과 반환

- 부호 연산자 + 는 하는 일이 없으며, 쓰이는 경우도 적음

 

 

산술 연산자 

- 사칙 연산자  + - * /

 

- 나머지 연산자 %

- 왼쪽의 피연산자를 오른쪽 피연산자로 나누고 난 나머지 값을 결과로 반환하는 연산자

- 나누는 수로 0 사용 불가능

- 짝수, 홀수, 배수 검사등에 주로 사용

 

 

비교연산자 

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

- 참이면 true 거짓이면 false를 결과로 반환

- 참조형에는 사용 불가

 

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

- = : 두 값이 같으면 true 아니면 false

- != : 두 값이 다르면 true dkslaus false

 

- 문자열을 비교할 떄는 비교연산자 대신 equals() 라는 메서드 사용해야함

 

 

논리연산자

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

- || (or결합) : 피연산자 중 어느 한 쪽만 true이면 true를 결과로 얻음

- && (and결합) : 피연산자 양쪽 모두 true 이어야 true를 결과로 얻음

  true && true -> true 
  true && false -> false 
  false && true -> false
  false && false -> false 
 
  true || true -> true 
  true || false -> true 
  false || true -> true 
  false || false -> false 

 

- 논리 부정 연산자  !

- true와 false 값을 반대로 바꿈

 

- & 와 && , | 와 || 는 어떤 차이가 있을까?  성능향상을 목적으로 &&와 || 를 사용
- && 를 사용하면 false 가 먼저 도출되면 그 결과는 false이므로 이후 연산은 수행하지 않고 연산을 마침 
- || 를 사용하면 true가 먼저 도출되면 그 결과는 false이므로 바로 연산을 마치고 true를 반환  

 

조건 연산자 ?:

- 조건식, 식1, 식2 모두 세 개의 피연산자를 필요로 하는 삼항 연산자. 삼항 연산자는 조건 연산자 하나뿐

 

대입 연산자 =

- 변수와 같은 저장공간에 값 또는 수식의 연산결과를 저장하는데 사용

728x90
반응형

'JAVA > Basic' 카테고리의 다른 글

Class 정의시 주요 구성요소  (0) 2021.08.05
Getter , Setter  (0) 2021.08.05
변수의 기본형(Primitive type)  (0) 2021.08.02
JVM 메모리 구조  (0) 2021.08.02
변수의 타입  (0) 2021.08.02