[자바/기초] 연산자

연산자의 종류와 피연산자

- 자바 연산자를 이용하여 입력한 데이터를 처리하는 데, 이 때 연산자들에 처리되는 데이터를 피연산자라고한다.

연산자의 분류

- 단항 연산자 : 피연산자가 한 개인 연산자 (eg. num++)

- 이항 연산자 : 피연산자가 두 개인 연산자 (eg. num1 + num2)

- 삼항 연산자 : 피연산자가 세 개인 연산자 (eg. (2>7) ? 7 : 2)

연산식 표현법

[연산식 표현법]
[연산식 표현법]

- 피연사자는 값(리터럴)이나 변수(변수의 값)가 될 수 있다.

단항 연산자

대입 연산자

연산자 설명 예시
=   우측의 데이터를 좌측의 변수에 대입(저장)    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이어야 한다.

- 비교 연산자와 함께 조건문이나 반복문의 조건식에 많이 사용된다.

삼항 연산자

[삼항 연산자 형식]
[삼항 연산자 형식]

- 연산자에 사용되는 피연산자의 개수가 3개인 연산자이며, 조건 연산자라고도 불린다.

- 삼항 연산자의 조건식에는 비교 연산자나 논리 연산자가 포함된 수식이 사용된다.

    - 조건식을 수행해서 true/false를 판별한다.

    - 수행 결과가 true이면 값1 또는 수식 1의 결과값을 반환한다.

    - 수행 결과가 false이면 값2 또는 수식 2의 결과값을 반환한다.

- 간단한 조건문은 삼항 연산자를 이용하는 것이 편리하다.

연산자 우선 순위

- 수식에서 연산자의 우선 순위가 같은 경우 좌측에 위치한 연산자부터 계산하면서 우측으로 진행한다.

- 연산자 중 대입 연산자는 우선 순위가 가장 낮다.

- 하위 연산자를 먼서 수행하고자 한다면 괄호( )를 사용해서 묶어주면 된다.

자바 연산자 우선 순위

우선순위 연산자 종류
1   ., (), []   점, 괄호, 대괄호
2   +, -   부호 연산자
3   ++, --, !   부정/증감 연산자
3    * , / , %   산술 연산자
4    + , -
4    << , >>   시프트 연산자
5    < , <= , >=   비교 연산자
6    == , !=
7    & , ^ , |   비트 연산자
8    && , ||   논리 연산자
9    ? , :   조건 연산자
10    = , += , -=   대입 연산자

⊙ 참고 문헌

  1. 이병승, 「초보 개발자를 위한 자바:한 권으로 배우는 자바 마스터 가이드 북」, 영진닷컴, 2024, p128 - 156
  2. 마종현, 「제로베이스 백엔드 취업 파트타임 스쿨 5기:Part 01. Java 기초-Chapter 01. Java 프로그래밍-03.여러가지 연산자」, 제로베이스, 2024, https://zero-base.co.kr/