연산자1: 연산자의 규칙과 특징

2023. 5. 18. 02:28
연산자는 우선순위가 있으며, 종류마다 우선순위가 다르다.
정리해놓고 필요하면 찾아보자.

▶︎  연산자란?

  • 연산자(operator)는 연산을 수행하는 기호를 말한다.
  • 연산(operate)은 프로그램에서 데이터를 처리하여 결과를 산출하는 일련의 과정을 말한다.
  • 피연산자(operand)는 연산자가 연산을 수행하는 대상을 말한다.
  • 모든 연산자(operator)는 연산결과를 갖는다.
// 예시
x + 3  // x, 3은 피연산자, +는 연산자

 

▶︎  단항 연산자, 이항 연산자, 삼항 연산자

단항 연산자

연산자 종류 연산자 피연산자 수 결합규칙
부호 연산자 +, - (양수, 음수) 단항
증감 연산자 ++, -- (1 증가, 1 감소 / 전위, 후위) 단항
형변환 연산자 ( type ) 단항
논리 연산자 ! 단항, 이항
비트 연산자 ~ (보수) 단항, 이항
  • 연산자는 여러 종류가 있다. 피연산자의 개수에 따라 연산자를 분류하기도 한다. 
  • 단항 연산자는 피연산자의 개수가 하나이다. 이항 연산자, 삼항 연산자와 비교했을 때 가장 높은 우선순위를 가진다.

 

이항 연산자

연산자 종류 연산자 피연산자 수 결합규칙
산술 연산자 *, /, %, +, -, <<, >> 이항
비교 연산자 <, >, <=, >=, ==, != 이항
instanceof 연산자  instaceof 이항
논리 연산자 &, ^, |, &&, || 이항
대입 연산자, 복합 대입 연산자 =, +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |= 이항
  • 이항 연산자는 피연산자의 개수가 2개다. 단항 연산자, 삼항 연산자에 비교했을 때 두 번째 우선순위를 가진다.
  • 단, 대입 연산자는 모든 연산자 통틀어서(삼항 연산자 포함) 가장 후순위이다.

 

삼항 연산자

연산자 종류 연산자 피연산자 수 결합규칙
삼항 연산자 ?: 삼항
  • 삼항 연산자는 피연산자의 개수가 3개다. 단항 연산자, 이항 연산자에 비교했을 때 마지막 우선순위를 가진다.
  • 단, 이항 연산자 중 대입 연산자보다 우선순위를 가진다.
  • 삼항 연산자는 간단한 조건문 대신 사용할 수 있다. (아래 예시)
/* 
( 조건문 )? 참일때 나올 값 : 거짓일때 나올 값
	- 연산 결과값의 자료형에 신경써야한다.
*/
int ternary_operator = (1 > 0)? 10:20;
boolean ternary_operator_error = (true)? 1 : 0;  // 불가: 결과값 1과 0은 int형이기 때문이다.

 

연산자의 우선순위를 모두 정리하면 아래와 같다.

우선순위 연산자 설명
1 [] 첨자 연산자
. 멤버 연산자
2 ++ 후위 증가 연산자
-- 후위 감소 연산자
3 ! 논리 NOT 연산자
~ 비트 NOT 연산자
+ 양의 부호 (단항 연산자)
- 음의 부호 (단항 연산자)
++ 전위 증가 연산자
-- 전위 감소 연산자
(타입) 타입 캐스트 연산자
4 * 곱셈 연산자
/ 나눗셈 연산자
% 나머지 연산자
5 + 덧셈 연산자 (이항 연산자)
- 뺄셈 연산자 (이항 연산자)
6 << 비트 왼쪽 시프트 연산자
>> 부호 비트를 확장하면서 비트 오른쪽 시프트
>>> 부호 비트까지 모두 비트 오른쪽 시프트
7 < 관계 연산자(보다 작은)
<= 관계 연산자(보다 작거나 같은)
> 관계 연산자(보다 큰)
>= 관계 연산자(보다 크거나 같은)
instanceof 인스턴스의 실제 타입 반환
8 == 관계 연산자(와 같은)
!= 관계 연산자(와 같지 않은)
9 & 비트 AND 연산자
10 ^ 비트 XOR 연산자
11 | 비트 OR 연산자
12 && 논리 AND 연산자
13 || 논리 OR 연산자
14 ? : 삼항 조건 연산자
15 = 대입 연산자 및 복합 대입 연산자
(=, +=, -=, *=, /=, %=, <<=, >>=, >>>=, &=, ^=, |=)

출처: TCPSCHOOL.com, 12) 산술연산자, 2023.05.18 확인

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

참조

남궁성, <Java의 정석: 최신 Java 8.0 포함 - 3rd Editon>, 도우출판, pp 86~91, 130~132

TCPSCHOOL.com, 12) 산술연산자, 2023.05.18 확인

 

'Java' 카테고리의 다른 글

ArrayList와 LinkedList (자바 컬렉션 프레임워크)  (0) 2023.05.27
배열의 특징  (0) 2023.05.24
연산자2: 연산자의 활용  (0) 2023.05.22

BELATED ARTICLES

more