🌈 자바의 연산자(Operator)란?
연산자는 프로그램에서 데이터를 처리하거나 조건을 평가할 때 사용하는 기호입니다. 자바에서는 다양한 종류의 연산자가 제공되며, 각 연산자는 특정한 기능을 수행합니다. 자바에서 제공하는 주요 연산자는 사칙연산을 포함해 많은 종류가 있습니다.
🛠 자바 연산자의 종류
연산자는 크게 산술, 비교, 논리, 대입 연산자 4가지로 분류할 수 있습니다. 그 외에도 형변환 연산자(type) 등이 있습니다. 각 연산자는 특정한 목적을 가지고 데이터의 처리를 도와줍니다.
🔢 연산자의 우선순위와 결합규칙
식에 사용된 연산자가 사용되면 연산자의 우선순위에 따라 계산 순서가 결정됩니다. 자바에서는 대부분의 연산자가 직관적이지만, 괄호를 사용해 우선순위를 변경할 수 있습니다.
- 우선순위 : 산술 연산자 > 비교 연산자 > 논리 연산자 > 대입 연산자
- 결합규칙
- 단항 연산자(1개 피연산자)는 이항(2개) 연산자보다 우선순위가 높습니다.
- 연산자는 왼쪽에서 오른쪽으로 결합됩니다.(단, 대입 연산자(=)와 같은 경우 오른쪽에서 왼쪽으로 결합됩니다.)
➗ 산술 연산자
산술 연산자는 기본적인 사칙 연산(더하기, 빼기, 곱하기, 나누기) 및 나머지 연산을 수행합니다.
- 사칙 연산자 : +, -, *, /
- 나머지 연산자 : % (나눗셈의 나머지 값을 반환)
주의 : 나누기 연산에서 0으로 나누기를 시도하면 실행 시 오류가 발생할 수 있습니다.
int a = 10;
int b = 3;
System.out.println(a + b); // 13
System.out.println(a - b); // 7
System.out.println(a * b); // 30
System.out.println(a / b); // 3 (정수 나눗셈)
System.out.println(a % b); // 1
🔍 비교 연산자
비교 연산자는 두 값을 비교하고, 결과를 true 또는 false로 반환합니다. 주로 조건문이나 반복문에서 사용됩니다.
- 대소 비교 연산자 : 기본형은 물론 참조형, 즉 모든 자료형에 사용할 수 있습니다. [<, >, <=, >=]
- 등가 비교 연산자 : 두 피연산자의 값이 같은지 또는 다른지를 비교하는 연산입니다. [==, !=]
기본형 : 변수에 저장되어 있는 값이 같은지 확인
참조형 : 객체의 주소값을 비교하여 두 객체가 동일하지를 확인
int x = 5;
int y = 10;
System.out.println(x > y); // false
System.out.println(x == y); // false
System.out.println(x != y); // true
참고 : 기본형(primitive)과 참조형(reference)은 형 변환이 불가능하므로, 기본형과 참조형 간의 비교는 등가 비교 연산자(==)로 할 수 없습니다.
🧑🤝🧑 논리 연산자
논리 연산자는 조건식 간의 논리적 관계를 평가합니다. boolean 타입 또는 조건식만 허용합니다. 주로 조건문과 반복문에서 사용됩니다.
- && (AND결합) : 피연산자 양쪽 조건이 모두 true이어야 true를 반환합니다.
- || (OR결합) : 피연산자 중 어느 한쪽이라도 true면 true를 반환합니다.
- ! (NOT결합) : 조건의 반대 결과를 반환합니다.
효율적인 연산
OR 연산자 : 첫 번째 피연산자가 true일 경우 두 번째 피연산자는 평가하지 않습니다.
AND 연산자 : 첫 번째 피연산자가 false일 경우 두 번째 피연산자는 평가하지 않습니다.
같은 조건식이더라도 피연산자의 위치에 따라 연산속도가 달라질 수 있습니다.
OR연산의 경우 연산결과가 참일 확률이 높은 피연산자를 연산자의 왼쪽에 있어야 빠른 연산결과를 얻을 수 있습니다.
boolean a = true;
boolean b = false;
System.out.println(a && b); // false
System.out.println(a || b); // true
System.out.println(!a); // false
➡ 대입 연산자
대입 연산자는 변수에 값을 할당할 때 사용됩니다.
- 기본 대입 : =
- 복합 대입 : +=, -=, *=, /=, %= (연산을 바로 변수에 적용)
int num = 10;
num += 5; // num = num + 5와 동일
System.out.println(num); // 15
⬆ 증감 연산자 (단항 연산자)
증감 연산자는 피연산자의 값을 1 증가 또는 1 감소시킵니다. 증감 연산자는 전위형과 후위형으로 구분됩니다. 증감연산자의 피연산자로 정수와 실수 모두 가능하지만, 상수는 값을 변경할 수 없으므로 가능하지 않습니다.
- 증가 연산자(++) : 피연산자의 값을 1 증가
- 감소 연산자(--) : 피연산자의 값을 1 감소
- 전위형(++i) : 값이 참조되기 전에 증가
- 후위형(i++) : 값이 참조된 후에 증가
int i = 10;
System.out.println(++i); // 11 (전위형)
System.out.println(i++); // 11 (후위형, 출력 후 증가)
System.out.println(i); // 12
🤔 조건 연산자 ? :
조건 연산자(? :)는 조건에 따라 다른 값을 반환할 때 사용됩니다. 조건식이 true이면 첫 번째 값, false이면 두 번째 값을 반환합니다. 조건 연산자는 조건문인 if문을 간략하게 바꿔 쓸 수 있어, 코드가 간결하고 깔끔해집니다.
가독성을 높이기 위해 조건식을 괄호()로 둘러싸는 경우가 많지만 필수는 아닙니다.
int a = 10, b = 20;
int max = (a > b) ? a : b; // b의 값이 저장됨
System.out.println(max); // 20
🚀 결론
자바에서 연산자는 데이터를 처리하고 조건을 평가하는 데 필수적인 도구입니다. 연산자 종류에 따라 각각의 특징과 사용 방법이 다르므로, 연산자의 우선순위와 결합 규칙을 잘 이해하고 사용해야 합니다. 또한, 조건문과 반복문에서 논리 연산자와 비교 연산자를 적절히 사용하면 코드의 효율성과 가독성이 높아집니다.
연산자 사용 시 오류를 예방하고 가독성을 높이기 위해 우선순위를 고려하고, 가능한 간결한 코드 작성을 지향하는 것이 좋습니다.
'🌈 프로그래밍 언어 > 자바' 카테고리의 다른 글
[Java] 자바 반복문 - for, while, do-while 완벽 가이드 (0) | 2024.05.24 |
---|---|
[Java] 자바 조건문(If문, Switch문) 가이드 (0) | 2024.05.19 |
[Java] 자바 변수 기본 가이드 라인 (0) | 2024.04.05 |
[Java] 자바 코드에서 주의할 점 (0) | 2023.03.27 |
[Java] 프로그래밍 언어 자바란 무엇인가? (0) | 2023.03.27 |