본문 바로가기

언어/Java

[ 자바 / Java ] 단항 연산자

반응형

자바의 단항 연산자(Unary Operators)는 단일 피연산자에 대해 작동하는 연산자입니다. 이들은 주로 피연산자의 값을 증감하거나 부호를 변경하거나 논리 상태를 반전시키는 데 사용됩니다. 자바에서 사용되는 주요 단항 연산자들을 설명하겠습니다.

자바의 주요 단항 연산자

  1. 증감 연산자 (Increment and Decrement Operators)
  2. 부호 연산자 (Unary Plus and Minus Operators)
  3. 논리 NOT 연산자 (Logical Complement Operator)
  4. 비트 NOT 연산자 (Bitwise Complement Operator)
  5. 캐스팅 연산자 (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 연산자 (!)는 부울 값을 반전시키는 데 사용됩니다. truefalse로, falsetrue로 변경됩니다.

예시:

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 (소수점 이하가 잘림)
    }
}

이 예제는 자바의 주요 단항 연산자를 모두 포함하고 있으며, 각 연산자가 어떻게 작동하는지를 보여줍니다. 자바의 단항 연산자는 단일 피연산자에 대해 다양한 변환 및 조작을 수행할 수 있는 유용한 도구입니다.

궁금한 점이 있거나 추가적인 설명이 필요하다면 언제든지 질문해 주세요!

반응형