연산자(Operator)
연산자는 모든 프로그래밍 언어의 기본 구성 요소이다.
연산을 하는 데 있어 연산을 수행하는 기호인 연산자와 연산 수행의 대상이 되는 피연산자로 나눠지고 모든 연산자는 연산 결과를 반환하게 된다.
Java에서는 기본적으로 산술 연산자부터 인스턴스 연산자까지 여러 가지 종류의 연산자를 제공하고 있다.
산술 연산자
연산자 | 결과 |
+ | 두 개의 숫자를 더한다. |
- | 두 개의 숫자를 뺀다. |
* | 두 개의 숫자를 곱한다. |
/ | 두 개의 숫자를 나누고 몫을 반환한다. |
% | 두 개의 숫자를 나누고 나머지를 반환한다. |
int a = 5;
int b = 3;
// TODO: 산술 연산자
System.out.println(a + b); // 8
System.out.println(a - b); // 2
System.out.println(a * b); // 15
System.out.println(a / b); // 1
System.out.println(a % b); // 2
- + 연산자: 두 개의 숫자(변수 a, b)를 더하여 결과값을 반환해 준다. (위의 코드에서는 결과값이 8이 나온다.)
- - 연산자: 두 개의 숫자(변수 a, b)를 빼서 결과값을 반환해 준다. (위의 코드에서는 결과값 2가 나온다.)
- * 연산자: 두 개의 숫자(변수 a, b)를 곱해서 결과값을 반환해 준다. (위의 코드에서는 결과값 15가 나온다.)
- / 연산자: 두 개의 숫자(변수 a, b)를 나눈후 몫을 반환해 준다. (5를 3으로 나눈 후 몫인 1을 반환해 준다.)
- % 연산자: 두 개의 숫자(변수 a, b)를 나눈 후 나머지를 반환해 준다. (5를 3으로 나눈 나머지 2를 반환해 준다.)
논리 연산자
int a = 5;
int b = 3;
// TODO: 논리 연산자
System.out.println(a > b && a != b); // true
System.out.println(a < b || a > b); // true
System.out.println(!(a > b)); // false
논리 연산자는 논리적으로 AND, OR 및 NOT 작업을 수행하는 데 사용된다.
주로 프로그래밍에서 조건문을 통해 복잡한 조건을 다루는 데 사용하는 연산자이다.
- && 연산자: AND 연산자로 두 개의 조건이 모두 참일 때 true, 하나라도 거짓이면 false를 반환한다.
- || 연산자: OR 연산자로 두 개의 조건 중 하나만 참이면 true, 두 개다 거짓이면 false를 반환한다.
- ! 연산자: NOT 연산자로 조건을 부정하는 연산자이다. 만약 조건의 결과값이 true라면 false를, false라면 true를 반환한다.
&& 연산자나 || 연산자의 특징을 살펴보면 첫 번째 조건식이 중요하다는 것을 알 수 있다.
&& 연산자를 사용할 때 만약 첫 번째 조건이 false라면 나머지 조건을 확인하지 않아도 결과값은 false가 된다.
반대로 || 연산자를 사용할 때 첫 번째 조건이 true라면 나머지 조건을 확인하지 않아도 결과값은 true가 된다.
관계 연산자
int a = 5;
int b = 3;
// TODO: 비교 연산자
System.out.println(a < b); // false
System.out.println(a > b); // true
System.out.println(a <= b); // false
System.out.println(a >= b); // true
System.out.println(a == b); // false
System.out.println(a != b); // true
관계 연산자(비교 연산자)는 두 개의 피연산자 간의 관계를 확인하는 데 사용되는 연산자이다.
두 개의 피연산자가 서로 같은지, 다른지 혹은 큰지, 작은 지를 비교해 주고 결과값은 boolean 값으로 반환해 준다.
주로 반복문과 조건문에서 조건식으로 사용된다.
- <, >: 두 개의 피연산자 간의 크고, 작음을 확인할 수 있는 연산자이다.
- <=, >=: 두 개의 피연산자 간의 크거나 같은지 혹은 작거나 같은지를 확인할 수 있는 연산자이다.
- ==, !=: 두 개의 피연산자가 같은지, 같지 않은지를 확인할 수 있는 연산자이다.
주의할 점으로는 <=, >=, != 연산자의 경우에 순서를 바꿔서 사용할 수 없다. 예를 들어 =<, =>, =! 이런 식으로 연산자의 순서를 바꿔서 사용하면 에러가 발생하게 되기 때문에 주의해야 한다.
대입 연산자
int a = 3;
int b = 5;
// TODO: 대입 연산자
a = b; // 왼쪽 피연산자(변수) = 오른쪽 피연산자(값)
System.out.println(a); // 5
대입 연산자는 변수에 값을 할당하는 데 사용된다. 대입 연산자의 왼쪽 피연산자는 변수이며 오른쪽 피연산자는 값으로 구성된다.
주의할 점으로는 피연산자들 간의 데이터 타입이 동일해야 한다는 점이다. 오른쪽 피연산자에서 제공되는 값이 왼쪽 피연산자에 대입되기 때문에 타입이 일치해야 한다.
삼항 연산자
세 개의 피연산자를 사용하는 조건 연산자이다.
프로그래밍을 하다 보면 if-else(조건문)을 많이 사용하게 되는데 코드의 양이 길어지고 가독성이 떨어질 수도 있다.
삼항 연산자를 통해서 조건문을 간편하게 만들어 코드의 양을 줄이고 가독성을 높일 수 있다는 장점이 있다.
variable = (condition) ? expression_if_true : expression_if_false;
조건식(condition)을 통해서 나온 결과 값이 참이면 참(expression_if_true)에 해당하는 결과값을 거짓이면(expression_if_false)에 해당하는 결과값을 반환해 준다.
int a = 5;
int b = 3;
System.out.println(a > b ? "참 입니다." : "거짓 입니다."); // "참 입니다" 출력
해당 코드를 통해서 먼저 a > b 조건식을 수행하고 true가 나온다면 "참 입니다." 결과를 출력하고 거짓이면 "거짓 입니다." 결과를 출력하게 된다.
if (a > b) {
System.out.println("참 입니다.");
} else {
System.out.println("거짓 입니다.");
}
if-else문으로 표현하면 해당 코드처럼 길어지지만 삼항 연산자를 통해 코드의 양을 줄일 수 있다.
인스턴스 연산자
instanceof 연산자를 통해서 형변환이 가능한지 확인할 수 있는 연산자가 있다.
해당 연산자는 객체지향 개념에서 다형성 글에 정리를 했으니 찾아보면 좋을 것 같다.
'자바' 카테고리의 다른 글
Java - 문자와 문자열 (0) | 2023.11.06 |
---|---|
Java - 제어문 (0) | 2023.11.04 |
Java - 변수 (1) | 2023.11.01 |
객체 지향 프로그래밍 - 추상화 (0) | 2023.08.18 |
객체 지향 프로그래밍 - 인터페이스 (0) | 2023.08.18 |