반응형
자바의 단항 연산자(Unary Operators)는 단일 피연산자에 대해 작동하는 연산자입니다. 이들은 주로 피연산자의 값을 증감하거나 부호를 변경하거나 논리 상태를 반전시키는 데 사용됩니다. 자바에서 사용되는 주요 단항 연산자들을 설명하겠습니다.
자바의 주요 단항 연산자
- 증감 연산자 (Increment and Decrement Operators)
- 부호 연산자 (Unary Plus and Minus Operators)
- 논리 NOT 연산자 (Logical Complement Operator)
- 비트 NOT 연산자 (Bitwise Complement Operator)
- 캐스팅 연산자 (Type Casting Operator)
각 연산자의 사용법과 예제를 살펴보겠습니다.
1. 증감 연산자 (Increment and Decrement Operators)
증감 연산자는 변수의 값을 1씩 증가하거나 감소시키는 데 사용됩니다.
- 증가 연산자 (
++
): 변수의 값을 1 증가시킵니다. - 감소 연산자 (
--
): 변수의 값을 1 감소시킵니다.
이 연산자들은 전위형과 후위형으로 사용할 수 있습니다.
- 전위형 (
++x
또는--x
): 먼저 값을 증가/감소시키고, 그 결과를 사용합니다. - 후위형 (
x++
또는x--
): 현재 값을 사용한 후, 값을 증가/감소시킵니다.
예시:
public class IncrementDecrementExample {
public static void main(String[] args) {
int a = 5;
int b = 5;
// 전위형 증가 연산자
System.out.println(++a); // 6 (a를 먼저 1 증가시키고 나서 출력)
// 후위형 증가 연산자
System.out.println(b++); // 5 (현재 b를 출력하고 나서 1 증가)
// 증가 후의 값
System.out.println(b); // 6 (이전에 증가된 b의 값)
// 전위형 감소 연산자
System.out.println(--a); // 5 (a를 먼저 1 감소시키고 나서 출력)
// 후위형 감소 연산자
System.out.println(b--); // 6 (현재 b를 출력하고 나서 1 감소)
// 감소 후의 값
System.out.println(b); // 5 (이전에 감소된 b의 값)
}
}
2. 부호 연산자 (Unary Plus and Minus Operators)
부호 연산자는 숫자의 부호를 변경하거나 그대로 유지하는 데 사용됩니다.
- 양수 연산자 (
+
): 피연산자의 값을 양수로 유지합니다 (보통 생략 가능). - 음수 연산자 (
-
): 피연산자의 부호를 반대로 바꿉니다.
예시:
public class UnaryPlusMinusExample {
public static void main(String[] args) {
int x = 10;
int y = -20;
// 양수 연산자
System.out.println(+x); // 10 (변화 없음)
// 음수 연산자
System.out.println(-y); // 20 (부호 반전)
// 음수 연산자 적용
System.out.println(-x); // -10
}
}
3. 논리 NOT 연산자 (Logical Complement Operator)
논리 NOT 연산자 (!
)는 부울 값을 반전시키는 데 사용됩니다. true
는 false
로, false
는 true
로 변경됩니다.
예시:
public class LogicalNotExample {
public static void main(String[] args) {
boolean isJavaFun = true;
// 논리 NOT 연산자
System.out.println(!isJavaFun); // false (true가 false로 반전됨)
boolean isSkyBlue = false;
System.out.println(!isSkyBlue); // true (false가 true로 반전됨)
}
}
4. 비트 NOT 연산자 (Bitwise Complement Operator)
비트 NOT 연산자 (~
)는 정수 값의 각 비트를 반전시킵니다. 이는 2의 보수를 계산하는 데 사용됩니다.
예시:
public class BitwiseNotExample {
public static void main(String[] args) {
int x = 5; // 0000 0101 in binary
// 비트 NOT 연산자
System.out.println(~x); // -6 (비트를 반전하면 1111 1010, 이는 2의 보수 표현에서 -6에 해당)
}
}
5. 캐스팅 연산자 (Type Casting Operator)
캐스팅 연산자는 하나의 타입을 다른 타입으로 변환하는 데 사용됩니다. 이는 주로 명시적 형변환에서 사용됩니다.
예시:
public class TypeCastingExample {
public static void main(String[] args) {
double myDouble = 9.78;
int myInt = (int) myDouble; // double을 int로 명시적 형변환 (소수점 이하 값은 제거됨)
System.out.println("myDouble: " + myDouble); // 9.78
System.out.println("myInt: " + myInt); // 9
}
}
종합 예제
아래 예제에서는 다양한 단항 연산자의 사용을 보여줍니다:
public class UnaryOperatorsDemo {
public static void main(String[] args) {
int num = 10;
// 전위형 증가 연산자
System.out.println("++num: " + ++num); // 11
// 후위형 증가 연산자
System.out.println("num++: " + num++); // 11
System.out.println("num: " + num); // 12
// 전위형 감소 연산자
System.out.println("--num: " + --num); // 11
// 후위형 감소 연산자
System.out.println("num--: " + num--); // 11
System.out.println("num: " + num); // 10
// 부호 연산자
System.out.println("+num: " + +num); // 10 (변화 없음)
System.out.println("-num: " + -num); // -10 (부호 반전)
// 논리 NOT 연산자
boolean isTrue = true;
System.out.println("!isTrue: " + !isTrue); // false
// 비트 NOT 연산자
int bitwise = 5; // 0000 0101 in binary
System.out.println("~bitwise: " + ~bitwise); // -6 (비트 반전)
// 캐스팅 연산자
double pi = 3.14159;
int intPi = (int) pi;
System.out.println("intPi: " + intPi); // 3 (소수점 이하가 잘림)
}
}
이 예제는 자바의 주요 단항 연산자를 모두 포함하고 있으며, 각 연산자가 어떻게 작동하는지를 보여줍니다. 자바의 단항 연산자는 단일 피연산자에 대해 다양한 변환 및 조작을 수행할 수 있는 유용한 도구입니다.
궁금한 점이 있거나 추가적인 설명이 필요하다면 언제든지 질문해 주세요!
반응형
'언어 > Java' 카테고리의 다른 글
[ Java ] 나머지 연산자 % 사용하기 (0) | 2024.06.09 |
---|---|
[ Java ] 산술 연산자에 대해서 알아 보자. (1) | 2024.06.09 |
[ Java ] 변수 타입 간의 형변환 하기 (1) | 2024.06.09 |
[ Java ] 가비지 컬렉션(Garbage Collection)으로 메모리 관리하기 (0) | 2024.06.09 |
[ Java ] 데이터 타입에 대해서 알아보자. (0) | 2024.06.09 |