연산자의 종류와 피연산자
- 자바 연산자를 이용하여 입력한 데이터를 처리하는 데, 이 때 연산자들에 처리되는 데이터를 피연산자라고한다.
연산자의 분류
- 단항 연산자 : 피연산자가 한 개인 연산자 (eg. num++)
- 이항 연산자 : 피연산자가 두 개인 연산자 (eg. num1 + num2)
- 삼항 연산자 : 피연산자가 세 개인 연산자 (eg. (2>7) ? 7 : 2)
연산식 표현법
![[연산식 표현법]](http://t1.daumcdn.net/tistory_admin/static/images/xBoxReplace_250.png)
- 피연사자는 값(리터럴)이나 변수(변수의 값)가 될 수 있다.
단항 연산자
대입 연산자
연산자 | 설명 | 예시 |
= | 우측의 데이터를 좌측의 변수에 대입(저장) | int num = 711; |
부호 연산자
연산자 | 설명 | 예시 |
+, - | 부호를 나타내는 연산자 | +711, -711 |
- 음수(-)와 양수(+)를 표시할 때 사용한다.
- 양수를 나타내는 + 부호는 생략이 가능하다. 실제로 실무에서는 주로 - 부호만 사용하는 편이다.
- 실제 변수의 부호를 변경하려면 대입 연산자를 사용하여 부호를 바꾼다.
증감 연산자
연산자 | 설명 | 예시 |
++ | 피연산자의 값을 1 증가시킨다. | ++num, num++ |
-- | 피연산자의 값을 1 감소시킨다. | --num, num-- |
- 논리 타입 변수를 제외한 모든 기본 타입 변수에 사용할 수 있다.
- 변수의 앞이나 뒤에 위치해서 변수의 값을 1 증가 또는 감소시켜준다.
- 증감 연산자의 위치에 따라 연산 순서가 달라진다.
- ++num, --num
변수의 앞에 위치하면 우선 변수의 값을 1 증가 또는 감소시킨 후, 다른 연산자들을 수행한다.
- num++, num--
변수의 뒤에 위치하면 변수에 관련한 다른 연산자들을 우선 수행한 후, 마지막으로 변수의 값을 1 증가 또는 감소 시킨다.
이항 연산자
산술 연산자
연산자 | 설명 | 예시 |
+ | 덧셈 연산 | int result = var1 + var2; |
- | 뺄셈 연산 | int result = var1 - var2; |
* | 곱셈 연산 | int result = var1 * var2; |
/ | 나눗셈 연산 | double result = var1 / var2; |
% | 나머지 연산 | int result = var % var; |
- 나눗셈 연산자를 사용하여 정수를 정수로 나누었을 때는 결과값 중 몫(정수)을 반환한다.
- 나머지 연산자는 두 수를 나누었을 때 나머지를 구하는 연산자이다.
대입 연산자
연산자 | 설명 |
= | 우측의 값을 좌측 변수에 저장 |
+= | 좌측 변수에 저장된 값에 우측의 값을 더한 결과를 좌측 변수에 저장 |
-= | 좌측 변수에 저장된 값에 우측의 값을 뺀 결과를 좌측 변수에 저장 |
*= | 좌측 변수에 저장된 값에 우측의 값을 곱한 결과를 좌측 변수에 저장 |
/= | 좌측 변수에 저장된 값에 우측의 값으로 나눈 결과를 좌측 변수에 저장 |
%= | 좌측 변수에 저장된 값에 우측의 값으로 나누어 나온 나머지를 좌측 변수에 저장 |
- 대입 연산자(=)는 우측의 값을 좌측의 변수에 저장하는 기능을 한다.
- 복합 대입 연산자는 산술연산자와 대입 연산자를 합쳐 사용하는 것을 의미한다.
비교 연산자
연산자 | 설명 |
> | 좌측의 값이 우측의 값보다 큰 지 비교 |
< | 좌측의 값이 우측의 값보다 작은 지 비교 |
>= | 좌측의 값이 우측의 값과 같거나 큰 지 비교 |
<= | 좌측의 값이 우측의 값과 같거나 작은 지 비교 |
== | 좌측의 값이 우측의 값과 같은 지 비교 |
!= | 좌측의 값이 우측의 값과 다른 지 비교 |
- 두 값의 크고 작음과 동등 여부를 비교할 때 사용된다.
- 비교 연산자 사용 시 좌측의 값이 기준값이 되며, 결과는 true나 false 중 출력된다.
논리 연산자
논리 연산자 | 설명 |
&& (논리곱) |
좌측과 우측의 논리값이 true이면 연산 결과는 true 이다. |
|| (논리합) |
좌측과 우측의 논리값 중 하나라도 true이면 연산 결과는 true 이다. 좌측의 논리값이 true인 경우, 우측의 논리값과 상관없이 연산 결과는 true 이다. |
^ (배타적 논리합) |
좌측과 우측의 논리값이 다르면 연산 결과는 true 이다. |
| (논리 부정) |
주어진 값과 반대의 논리값을 나타낸다. |
- 논리 연산자의 좌, 우측에 위치한 수식의 결과값은 반드시 true 또는 false이어야 한다.
- 비교 연산자와 함께 조건문이나 반복문의 조건식에 많이 사용된다.
삼항 연산자
![[삼항 연산자 형식]](http://t1.daumcdn.net/tistory_admin/static/images/xBoxReplace_250.png)
- 연산자에 사용되는 피연산자의 개수가 3개인 연산자이며, 조건 연산자라고도 불린다.
- 삼항 연산자의 조건식에는 비교 연산자나 논리 연산자가 포함된 수식이 사용된다.
- 조건식을 수행해서 true/false를 판별한다.
- 수행 결과가 true이면 값1 또는 수식 1의 결과값을 반환한다.
- 수행 결과가 false이면 값2 또는 수식 2의 결과값을 반환한다.
- 간단한 조건문은 삼항 연산자를 이용하는 것이 편리하다.
연산자 우선 순위
- 수식에서 연산자의 우선 순위가 같은 경우 좌측에 위치한 연산자부터 계산하면서 우측으로 진행한다.
- 연산자 중 대입 연산자는 우선 순위가 가장 낮다.
- 하위 연산자를 먼서 수행하고자 한다면 괄호( )를 사용해서 묶어주면 된다.
자바 연산자 우선 순위
우선순위 | 연산자 | 종류 |
1 | ., (), [] | 점, 괄호, 대괄호 |
2 | +, - | 부호 연산자 |
3 | ++, --, ! | 부정/증감 연산자 |
3 | * , / , % | 산술 연산자 |
4 | + , - | |
4 | << , >> | 시프트 연산자 |
5 | < , <= , >= | 비교 연산자 |
6 | == , != | |
7 | & , ^ , | | 비트 연산자 |
8 | && , || | 논리 연산자 |
9 | ? , : | 조건 연산자 |
10 | = , += , -= | 대입 연산자 |
⊙ 참고 문헌
- 이병승, 「초보 개발자를 위한 자바:한 권으로 배우는 자바 마스터 가이드 북」, 영진닷컴, 2024, p128 - 156
- 마종현, 「제로베이스 백엔드 취업 파트타임 스쿨 5기:Part 01. Java 기초-Chapter 01. Java 프로그래밍-03.여러가지 연산자」, 제로베이스, 2024, https://zero-base.co.kr/