오늘은 Java 프로그래밍 언어에서 중요한 개념인 연산자(Operators)에 대해 깊이 알아보겠습니다.
연산자는 프로그램 내에서 데이터를 처리하고 조작하는 데 필수적인 요소입니다. 이 블로그에서는 Java에서 제공하는 다양한 연산자들을 살펴보고, 각 연산자가 어떤 역할을 하는지, 어떻게 사용되는지에 대해 설명드리겠습니다.
1. 연산자란 무엇인가?
연산자는 변수와 값을 사용하여 다양한 계산과 논리 연산을 수행하는 데 사용되는 기호입니다. 연산자는 크게 다음과 같이 분류할 수 있습니다:
- 산술 연산자
- 할당 연산자
- 비교 연산자
- 논리 연산자
- 비트 연산자
- 기타 연산자
각 연산자 종류별로 상세히 살펴보겠습니다.
2. 산술 연산자 (Arithmetic Operators)
산술 연산자는 수학적인 계산을 수행하는 데 사용됩니다. Java에서는 다음과 같은 산술 연산자를 제공합니다:
- `+` : 덧셈
- `-` : 뺄셈
- `*` : 곱셈
- `/` : 나눗셈
- `%` : 나머지
public class ArithmeticOperators {
public static void main(String[] args) {
int a = 10;
int b = 5;
System.out.println("a + b = " + (a + b)); // 15
System.out.println("a - b = " + (a - b)); // 5
System.out.println("a * b = " + (a * b)); // 50
System.out.println("a / b = " + (a / b)); // 2
System.out.println("a % b = " + (a % b)); // 0
}
}
3. 할당 연산자 (Assignment Operators)
할당 연산자는 변수에 값을 할당하는 데 사용됩니다. 가장 기본적인 할당 연산자는 `=` 입니다. 이 외에도 다양한 복합 할당 연산자가 있습니다:
- `=` : 값 할당
- `+=` : 더한 후 할당
- `-=` : 뺀 후 할당
- `*=` : 곱한 후 할당
- `/=` : 나눈 후 할당
- `%=` : 나머지를 구한 후 할당
public class AssignmentOperators {
public static void main(String[] args) {
int a = 10;
a += 5; // a = a + 5
System.out.println("a += 5: " + a); // 15
a -= 3; // a = a - 3
System.out.println("a -= 3: " + a); // 12
a *= 2; // a = a * 2
System.out.println("a *= 2: " + a); // 24
a /= 4; // a = a / 4
System.out.println("a /= 4: " + a); // 6
a %= 3; // a = a % 3
System.out.println("a %= 3: " + a); // 0
}
}
4. 비교 연산자 (Comparison Operators)
비교 연산자는 두 값을 비교하고, 그 결과로 논리값(true 또는 false)을 반환합니다. Java에서는 다음과 같은 비교 연산자를 제공합니다:
- `==` : 같음
- `!=` : 같지 않음
- `>` : 큼
- `<` : 작음
- `>=` : 크거나 같음
- `<=` : 작거나 같음
public class ComparisonOperators {
public static void main(String[] args) {
int a = 10;
int b = 5;
System.out.println("a == b: " + (a == b)); // false
System.out.println("a != b: " + (a != b)); // true
System.out.println("a > b: " + (a > b)); // true
System.out.println("a < b: " + (a < b)); // false
System.out.println("a >= b: " + (a >= b)); // true
System.out.println("a <= b: " + (a <= b)); // false
}
}
5. 논리 연산자 (Logical Operators)
논리 연산자는 논리값을 조합하여 새로운 논리값을 생성하는 데 사용됩니다. Java에서는 다음과 같은 논리 연산자를 제공합니다:
- `&&` : 논리 AND
- `||` : 논리 OR
- `!` : 논리 NOT
public class LogicalOperators {
public static void main(String[] args) {
boolean x = true;
boolean y = false;
System.out.println("x && y: " + (x && y)); // false
System.out.println("x || y: " + (x || y)); // true
System.out.println("!x: " + (!x)); // false
}
}
6. 비트 연산자 (Bitwise Operators)
비트 연산자는 정수형 변수의 비트 단위 연산을 수행하는 데 사용됩니다. Java에서는 다음과 같은 비트 연산자를 제공합니다:
- `&` : 비트 AND
- `|` : 비트 OR
- `^` : 비트 XOR
- `~` : 비트 NOT
- `<<` : 비트 왼쪽 시프트
- `>>` : 비트 오른쪽 시프트
- `>>>` : 부호 없는 비트 오른쪽 시프트
public class BitwiseOperators {
public static void main(String[] args) {
int a = 5; // 0101 in binary
int b = 3; // 0011 in binary
System.out.println("a & b: " + (a & b)); // 0001 -> 1
System.out.println("a | b: " + (a | b)); // 0111 -> 7
System.out.println("a ^ b: " + (a ^ b)); // 0110 -> 6
System.out.println("~a: " + (~a)); // 1010 -> -6
System.out.println("a << 1: " + (a << 1)); // 1010 -> 10
System.out.println("a >> 1: " + (a >> 1)); // 0010 -> 2
System.out.println("a >>> 1: " + (a >>> 1)); // 0010 -> 2
}
}
7. 기타 연산자 (Miscellaneous Operators)
Java에는 위에서 설명한 연산자 외에도 다양한 기타 연산자가 있습니다. 이 섹션에서는 삼항 연산자, 인스턴스 연산자, 형 변환 연산자 등을 다룹니다.
7.1. 삼항 연산자 (Ternary Operator)
삼항 연산자는 조건문을 간결하게 작성하는 데 사용됩니다. `조건식 ? 참일 때의 값 : 거짓일 때의 값` 형태로 사용됩니다.
public class TernaryOperator {
public static void main(String[] args) {
int a = 10;
int b = 5;
int max = (a > b) ? a : b;
System.out.println("Max value: " + max); // 10
}
}
7.2. instanceof 연산자
`instanceof` 연산자는 객체가 특정 클래스의 인스턴스인지 여부를 검사하는 데 사용됩니다.
public class InstanceofOperator {
public static void main(String[] args) {
String str = "Hello, World!";
if (str instanceof String) {
System.out.println("str is an instance of String");
}
}
}
7.3. 형 변환 연산자 (Type Cast Operator)
형 변환 연산자는 하나의 자료형을 다른 자료형으로 변환하는 데 사용됩니다. `(자료형)값` 형태로 사용됩니다.
public class TypeCastOperator {
public static void main(String[] args) {
double d = 9.78;
int i = (int) d; // double to int
System.out.println("double value: " + d); // 9.78
System.out.println("int value: " + i); // 9
}
}
'JAVA' 카테고리의 다른 글
Java 클래스와 객체 (0) | 2024.06.23 |
---|---|
Java Spring Security (0) | 2024.06.22 |
Java 자료형 (0) | 2024.06.10 |
WebFlux: 반응형 프로그래밍을 이용한 비동기 웹 프레임워크 (0) | 2024.06.09 |
Java 객체지향이란 (0) | 2024.06.07 |