목차
1. 연산자란?
📌 연산(operation)
- 프로그래밍 중에 데이터를 처리하여 결과를 만드는 것
- 이 연산 과정에 사용되는 기호 또는 부호를 연산자(operator) 라고 한다.
- 연산되는 데이터는 피연산자(operand)라고 한다.

2. 연산자 종류
자바에서 사용되는 주요 연산자는 다음과 같습니다.
| 연산자 종류 | 주요 연산자 | 설명 | |
| 산술 연산자 | +, -, *, /, % | 사칙연산 및 나머지 연산 수행 | |
| 대입 연산자 | =, +=, -=, *= 등 | 값을 변수에 할당 | |
| 증감 연산자 | ++, -- | 값을 1 증가 또는 감소 | |
| 비교 연산자 | ==, !=, <, >= 등 | 값 비교 (true/false 반환) | |
| 논리 연산자 | &&, ` | ||
| 조건 연산자 | ? : | 삼항 연산자. 조건에 따라 값 선택 | |
| 비트 연산자 | &, ` | , ^, ~, <<, >>` 등 |
연산자는 표현식(expression)을 구성하는 핵심 도구입니다.
다양한 연산자를 적절히 조합하면 복잡한 로직도 간단히 표현할 수 있습니다.
3. 연산자 우선순위와 결합 방향
📌 연산자 우선순위와 결합규칙
- 연산식에 사용되는 연산자가 둘 이상일 때, 연산 순서는 연산자의 우선순위를 따른다.
- 단항 연산자(unary operator)는 이항 연산자(binary operator)보다 우선순위가 높다.
- 만약 기존에 지정된 우선순위 외에 개발자가 임의로 우선순위를 지정하고 싶다면 () 괄호로 묶어주면 우선순위가 제일 높아진다.
- 연산자의 흐름은 왼쪽에서 오른쪽으로 흐르지만, 대입 연산자의 경우 오른쪽에서 왼쪽으로 흐른다.
단항 연산자는 연산에 필요한 피연산자의 갯수가 하나다.
예) ++x, x++, --x, x++
이항 연산자는 연산에 필요한 피연산자이며 대부분의 연산자가 이항연산자이다.
예) a + b, a += b, a == b
삼항 연산자는 연산에 필요한 피연산자의 갯수가 세 개이다.
예) x ? a : b
| 종류 | 구분 | 세부 구분 | 연산자 | 우선순위 |
| 최우선 연산자 | 직접 접근 연산자 | ( ) . { } | 1 | |
| 단항 연산자 | + - ! (자료형) ++ -- ~ | 2 | ||
| 이항 연산자 | 산술 연산자 | * / % | 3 | |
| + - | 4 | |||
| 쉬프트 연산자 | >> << >>> | 5 | ||
| 비교 연산자 | > < >= <= | 6 | ||
| == != | 7 | |||
| 논리 연산자 | 비트 논리 연산자 | & | 8 | |
| ^ | 9 | |||
| | | 10 | |||
| 일반 논리 연산자 | && | 11 | ||
| || | 12 | |||
| 삼항 연산자 | (조건식) ? 참일 때 값 : 거짓일 때 값 | 13 | ||
| 대입 연산자 | 순수 대입 | = | 14 | |
| 복합 대입 | 산술 대입 | += -= *= /= %= | 14 | |
| 쉬프트 대입 | <<= >>= >>>= | 14 | ||
| 비트 논리 대입 | &= ^= | = | ||
| 나열 연산자 | , | 15 |
4. 단항 / 이항 / 삼항 연산자
연산자는 필요로 하는 피연산자의 개수에 따라 분류할 수 있습니다.
| 분류 | 예시 | 설명 |
| 단항 연산자 | ++a, --a, !true | 피연산자 1개 |
| 이항 연산자 | a + b, a > b | 피연산자 2개 |
| 삼항 연산자 | 조건 ? 값1 : 값2 | 피연산자 3개 (유일한 삼항 연산자) |
삼항 연산자는 조건문을 간단하게 작성할 수 있게 도와주는 도구입니다.
이 내용은 이후 연산자 시리즈에서 자세히 다룰 예정입니다.
마무리
다음 게시글에서는 산술 연산자와 대입 연산자에 대해 학습하겠습니다.
'study > Programming' 카테고리의 다른 글
| [JAVA 기초] 증감 연산자와 조건(삼항) 연산자 (1) | 2025.04.14 |
|---|---|
| [JAVA 기초] 산술 연산자와 대입 연산자 (1) | 2025.04.13 |
| [JAVA 기초] 상수(final) (1) | 2025.04.11 |
| [JAVA 기초] 오버플로우와 언더플로우 (1) | 2025.04.10 |
| [JAVA 기초] 형 변환 (Casting) (1) | 2025.04.09 |