저번에 포스팅한 변수 선언과 초기화에 이어,
오늘은 변수와 함께 다양하게 활용되는 연산자를 공부하려 한다.
선언해둔 변수와 클래스들에 연산자를 함께 활용함으로써
개발자가 구현하려는 동작들을 수행할 수 있게 된다.
정의부터 살펴보자면
연산자(Operator)란?
주어진 식을 계산하여 결과를 얻어내는 과정을 연산이라고 하며, 연산을 수행하는 기호를 연산자라고 한다.
자바에서 사용되는 주요 연산자들의 종류는 다음과 같다.
(색상은 포스팅 part를 구분한 것 뿐, 다른 의미는 없다.)
🟥 산술 연산자
🟥 관계 연산자
🟥 부호,증감 연산자
🟥 논리 연산자
🟦 비트 연산자
🟦 대입 연산자
🟦 instanceof
🟧 삼항 연산자
종류가 많아 연산자는 파트1, 파트2, 삼항 연산자로 따로 분리하여 총 3개의 연산자 포스팅을 할 예정이다.
오늘 포스팅은 4종류의 연산자를 알아본다.
오늘 배울 연산자가 실제 코드를 구성하면서,
가장 많이 사용되는 연산자라 칭하여도 과언이 아니기 때문에 꼼꼼히 살펴보고 공부하여 넘어가보도록 하자.
산술 연산자
- 덧셈 (+)
- 뺄셈 (-)
- 곱셈 (*)
- 나눗셈 (/)
- 나머지 구하기 (%)
사칙연산을 위한 4개의 연산자 이외에, 나눗셈 후 나머지 값을 구하는 연산자까지
총 5개의 연산자가 있다.
기본적으로 사용되는 간단한 연산자들이기에, 바로 예시를 확인하자
산술 연산자의 사용 예 ("▶️Run" Click)
여기서 잠깐 !
산술 연산식에서의 타입 변환
정수,실수 타입 변수가 산술 연산식에서 피연산자로 사용되면,
연산 시에 타입 변환이 발생하는데 이를 고려하여 연산식을 고려하는 것이 좋다.
연산식에서의 타입 변환은 따로 다른 포스팅으로 정리해 두었다
아래 포스팅을 참고하면 된다.
산술 연산식에서의 형변환
원래는 "연산자" 포스팅에서 함께 다룰 예정이였으나, 생각보다 글이 길어져 따로 분류해두게 됐다. 정수, 실수 타입의 변수가 산술 연산식에서 피연산자로 사용되는 경우에 대한 특징과 활용을
hellowolrd.tistory.com
관계 연산자
- 등호 (==)
- 부등호 (!=)
- 크다 (>)
- 작다 (<)
- 크거나 같다 (>=)
- 작거나 같다 (<=)
6개의 연산자가 있으며,
주어진 두 값을 비교하고 그 결과를 논리값인 참(true) 또는 거짓(false)으로 반환하는 연산자이다.
해당 연산식이 결과가 "참"인가 --> true 반환
해당 연산식의 결과가 "거짓인가 --> false 값 반환
연산식의 결과에 따라 boolean 타입인 true/false를 반환한다고 알아두면 된다.
(아래는 관계 연산자의 예시)
관계 연산자는 추후 다룰 "조건문,반복문" 과 함께 사용되는 경우가 많으며,
그를 통해 두 값의 연산값을 비교하고 프로그램의 흐름을 제어한다.
부호, 증감 연산자
부호 연산자
- 피연산자의 부호 유지 (+)
- 피연산자의 부호 변경 (-)
증감 연산자
- 피연산자의 값을 1 증가시킴 (++ 피연산자)
- 피연산자의 값을 1 감소시킴 (-- 피연산자)
- 다른 연산을 우선 수행한 뒤에 피연산자의 값을 1 증가시킴 (피연산자 ++)
- 다른 연산을 우선 수행한 뒤에 피연산자의 값을 1 감소시킴 (피연산자 --)
🔘 부호 연산자
부호 연산자에서 피연산자의 부호를 유지하는 "+" 연산자는 사실 잘 사용되지는 않는다.
"-" 연산자는 피연산자의 부호를 변경함으로, 양수 -> 음수 또는 음수 -> 양수 변경시에 유용하다
(아래는 부호 연산자의 예시)
여기서 유의해야 할 점은
정수 타입 byte, short, int의 연산 결과는 int 타입이다.
부호를 변경하는 것도 연산이므로, 다음과 같이 int 타입 이상의 타입에 대입해야 한다.
(long 타입의 연산 결과는 long 타입 이상의 타입에 대입)
🔘 증감 연산자
증감 연산자는 변수의 값을 1 증가 또는 감소시키는 연산자이다.
이 연산자는 피연산자의 앞에 붙느냐 뒤에 붙느냐에 따라 연산 처리 방식이 다르다.
(사용 예시)
논리 연산자
[ ] 는 영문 표기
- 논리곱[AND] (&,&&)
- 논리합[OR] (|,||)
- 배타적 논리합[XOR] (^)
- 논리 부정[NOT] (!)
boolean 타입으로 지정된 결과값 true, false에 따라
연산식을 수행하는 연산자이다.
🔘 AND,OR
AND(&&)는 연산 과정에서 피연산자가 모두 true의 경우에만 연산 결과값을 true로 가진다.
OR(||)는 연산 과정에서 피연산자가 중 하나라도 true값이면, 연산 결과값을 true로 가진다.
AND(&,&&) 와 OR(|,||)는 기호를 하나 혹은 두개를 사용하는데,
산출 결과는 같으나 연산 과정에 차이가 있다.
&는 두 피연산자를 모두 검사해서 산출 결과를 낸다
&&는 앞의 피연산자가 false라면 뒤의 피연산자를 검사하지 않고 바로 false의 결과값을 낸다.
마찬가지로 |와 ||또한
|는 두 피연산자를 모두 검사해서 산출 결과를 내고,
||는 앞의 피연산자가 true라면 뒤의 피연산자를 검사하지 않고 바로 true의 결과값을 낸다.
따라서 &(|)보다 &&(||)가 더 효율적으로 동작한다.
🔘 XOR(배타적 논리합)
XOR(^)는 연산 과정에서 피연산자가 각각 true,false 값을 지닌의 경우에만 연산 결과값을 true로 가진다.
🔘 NOT(논리 부정)
NOT(!)은 피연산자의 논리값을 바꾸어서 연산 결과값을 낸다.
boolean thesis = true;
일 때
thesis = !thesis; 의 경우
변수 thesis의 값은 false가 되는 것이다.
(아래는 논리 연산자의 사용 예시)
오늘은 이렇게 4종류의 연산자에 대해 공부해보았다.
사실 글의 초입에도 적어놓았듯, 위의 4종류의 연산자가 사용 빈도가 가장 잦다.
part1의 연산자들을 모두 꼼꼼하게 공부하고,
part2, 삼항 연산자는 조금 힘을 빼고 읽어봐도 좋을 것 같다.
마지막으로 "산술 연산자"항목에서 다루는
"자바의 형변환"은 꽤 중요하니 꼭 한번 공부하면 큰 도움이 되리라 생각한다.
part1 끝 !
'JAVA' 카테고리의 다른 글
연산자(part 2) (0) | 2023.09.11 |
---|---|
산술 연산식에서의 형변환 (0) | 2023.09.06 |
변수 선언과 초기화 (0) | 2023.09.01 |
자바의 데이터 타입(자료형) (1) | 2023.08.30 |
자바 언어의 특징 (0) | 2023.08.25 |