언어(Language)/Java

[Java] 자바 연산자(Operator) 종류 및 사용법 정리

잇트루 2022. 9. 10. 22:15
반응형

연산자 (Operator)

연산자는 하나의 값 또는 여러 개의 값을 피연산자로 하여 새로운 값을 만들어내는 기호를 의미한다. 자바의 연산자는 산술, 비교, 논리 등 종류가 매우 다양하다.

 

산술 연산자

산술 연산자는 사칙연산에 사용되는 연산자로 +, -, *, /, %가 있다.

산술 연산자의 동작은 일반적인 수학 연산과 동일하다.

연산자 설명
+ (덧셈 연산자) 두 항의 값을 더한 값을 반환한다.
- (뺄셈 연산자) 좌항의 값에서 우항의 값을 뺀 값을 반환한다.
* (곱셈 연산자) 두 항의 값을 곱한 값을 반환한다.
/ (나눗셈 연산자) 좌항을 우항으로 나눈 값을 반환한다.
% (나머지 연산자 또는 모듈로 연산자) 값을 우항의 값으로 나눈 나머지를 반환한다.
int num1 = 10;
int num2 = 5;

System.out.println(num1 + num2); // 15
System.out.println(num1 - num2); // 5
System.out.println(num1 * num2); // 50
System.out.println(num1 / num2); // 2
System.out.println(num1 % num2); // 0

산술 연산자 사용 시 주의할 점

나눗셈 연산자(/)와 나머지 연산자(%)를 사용할 때, 우항에 0이 위치할 수 없다.

나눗셈 연산자를 사용할 때, 좌항과 우항이 모두 정수형이면, 그 결과도 정수형이다. (소수점 이하의 값은 버려진다.)

반면, 좌항이나 우항 중 하나라도 실수형이 존재하면, 그 결과는 실수형으로 자동 형 변환되어 계산된다.

 

증감 연산자

증감 연산자는 정수형 데이터 타입을 가진 변수의 값을 1씩 증가시키거나 감소시킬 때 사용한다. 증감 연산자는 ++, --이 있고, 위치에 따라 전위형 증감 연산자와 후위형 증감 연산자로 구분된다.

int num = 5;
// 전위형 증감 연산자
System.out.println(++num); // 6
System.out.println(num); // 6

num = 5;
System.out.println(--num); // 4
System.out.println(num); // 4

// 후위형 증감 연산자
num = 5;
System.out.println(num++); // 5
System.out.println(num); // 6

num = 5;
System.out.println(num--); // 5
System.out.println(num); // 4

전위형 증감 연산자 : 증감 연산을 먼저 수행한 후, 결괏값을 적용시킨다.

후위형 증감 연산자 : 기존의 값을 먼저 적용시키고 그다음에 증감 연산을 수행한다.

 

복합 대입 연산자

대입 연산자(=)는 사칙 연산자와 함께 조합하여 복합 대입 연산자로 활용할 수 있다. 복합 대입 연산자는 +=, -=, *=, /=, %= 등이 있다.

 

증감 연산자는 1씩 증가시키거나 감소시킬 때 사용한다. 복합 대입 연산자는 보다 더 큰 수를 증가시키거나 감소시킬 때 사용한다. 뿐만 아니라 하나의 변수만을 사용하여 산술 연산이 필요할 때, 코드를 간결하게 작성할 수 있는 장점이 있다.

int num1 = 5;
num1 += 3; // num1 = 8

int num2 = 5;
num2 -= 3; // num2 = 2

int num3 = 5;
num3 *= 3; // num3 = 15

int num4 = 5;
num4 /= 3; // num4 = 1

int num5 = 5;
num5 %= 3; // num5 = 2

 

비교 연산자

비교 연산자는 boolean 타입으로 평가될 수 있는 조건식에 사용되며, 대소 비교(>, <, ≤, ≥) 연산자와 등가 비교(==, ≠) 연산자로 분류된다.

 

대소 비교 연산자

대소 비교 연산자는 boolean을 제외한 나머지 기본 타입에 모두 사용할 수 있다. 조건에 따라 true와 false를 반환한다.

System.out.println(3 > 2); // true
System.out.println(3 > 4); // false

System.out.println(2 < 3); // true
System.out.println(4 < 3); // false

System.out.println(3 >= 3); // true
System.out.println(3 <= 2); // false

 

등가 비교 연산자

등가 비교 연산자는 모든 타입에 사용할 수 있다. 두 항의 값이 동등한 지의 여부를 판단할 때 사용된다. 단, 기본 타입과 참조 타입 간의 등가 비교는 할 수 없다. 조건에 따라 true와 false를 반환한다.

System.out.println(3 == 3); // true
System.out.println(3 == 4); // false

System.out.println(3 != 3); // false
System.out.println(3 != 4); // true

 

논리 연산자

논리 연산자는 and, or, not 연산자를 뜻하며 차례대로 &&, ||, !으로 표현한다. 결과에 따라 true와 false를 반환한다.

// and 연산자(&&) : 모든 조건이 true 일 때만 true 반환
System.out.println(true && true); // true
System.out.println(true && false); // false
System.out.println(false && true); // false
System.out.println(false && false); // false

// or 연산자(||) : 한 개라도 true이면 true 반환
System.out.println(true || true); // true
System.out.println(true || false); // true
System.out.println(false || true); // true
System.out.println(false || false); // false

// not 연산자(!) : true와 false를 반대로 바꾸는 연산자
System.out.println(!true); // false
System.out.println(!false); // true
System.out.println(!false && true); // true
System.out.println(!false || false); // true

 

연산자 우선순위

프로그래밍 언어에서는 연산자에 따라 우선순위가 존재한다.

주요 연산자의 우선순위는 다음과 같다.

1순위 : (), []

2순위 : !, ~, ++, --

3순위 : *, /, %

4순위 : <, ≤, >, ≥

5순위 : &&

6순위 : ||

7순위 : ?:

8순위 : =, +=, -=, /=, %=

반응형