본문 바로가기

언어/Java

[ 자바 / Java ] 자바 대입연산자 사용하기

반응형

 

반응형

자바의 대입 연산자(Assignment Operators)는 변수에 값을 할당하거나 특정 연산을 수행한 후 그 결과를 다시 변수에 저장하는 데 사용됩니다. 대입 연산자는 코드에서 매우 자주 사용되며, 여러 유형이 있습니다. 가장 기본적인 대입 연산자는 =이지만, 자바는 이를 확장한 다양한 복합 대입 연산자도 제공합니다.

1. 기본 대입 연산자 (=)

가장 기본적인 대입 연산자는 =이며, 변수에 값을 할당하는 데 사용됩니다. 이 연산자는 오른쪽의 값을 왼쪽의 변수에 저장합니다.

예시:

public class BasicAssignmentExample {
    public static void main(String[] args) {
        int x = 10; // x에 10을 할당
        String message = "Hello, World!"; // message에 문자열을 할당

        System.out.println("x: " + x); // 출력: x: 10
        System.out.println("message: " + message); // 출력: message: Hello, World!
    }
}

위의 예시에서 = 연산자는 10을 변수 x에, "Hello, World!"를 변수 message에 할당합니다.

2. 복합 대입 연산자 (Compound Assignment Operators)

복합 대입 연산자는 대입 연산자와 다른 연산자(산술 연산자, 비트 연산자 등)를 결합한 형태로, 변수에 대한 연산과 대입을 한 번에 수행합니다. 이를 통해 코드가 더욱 간결해질 수 있습니다.

  1. 덧셈 후 대입 (+=)
  2. 뺄셈 후 대입 (-=)
  3. 곱셈 후 대입 (*=)
  4. 나눗셈 후 대입 (/=)
  5. 나머지 후 대입 (%=)
  6. 비트 AND 후 대입 (&=)
  7. 비트 OR 후 대입 (|=)
  8. 비트 XOR 후 대입 (^=)
  9. 왼쪽 시프트 후 대입 (<<=)
  10. 오른쪽 시프트 후 대입 (>>=)
  11. 부호 없는 오른쪽 시프트 후 대입 (>>>=)

각 복합 대입 연산자의 동작을 예제로 살펴보겠습니다.

1. 덧셈 후 대입 (+=)

public class AdditionAssignmentExample {
    public static void main(String[] args) {
        int a = 5;
        a += 3; // a = a + 3

        System.out.println("a: " + a); // 출력: a: 8
    }
}

위의 예시에서 a += 3a = a + 3과 동일한 역할을 합니다.

2. 뺄셈 후 대입 (-=)

public class SubtractionAssignmentExample {
    public static void main(String[] args) {
        int b = 10;
        b -= 4; // b = b - 4

        System.out.println("b: " + b); // 출력: b: 6
    }
}

위의 예시에서 b -= 4b = b - 4와 동일한 역할을 합니다.

3. 곱셈 후 대입 (*=)

public class MultiplicationAssignmentExample {
    public static void main(String[] args) {
        int c = 7;
        c *= 2; // c = c * 2

        System.out.println("c: " + c); // 출력: c: 14
    }
}

위의 예시에서 c *= 2c = c * 2와 동일한 역할을 합니다.

4. 나눗셈 후 대입 (/=)

public class DivisionAssignmentExample {
    public static void main(String[] args) {
        int d = 20;
        d /= 5; // d = d / 5

        System.out.println("d: " + d); // 출력: d: 4
    }
}

위의 예시에서 d /= 5d = d / 5와 동일한 역할을 합니다.

5. 나머지 후 대입 (%=)

public class ModulusAssignmentExample {
    public static void main(String[] args) {
        int e = 25;
        e %= 4; // e = e % 4

        System.out.println("e: " + e); // 출력: e: 1
    }
}

위의 예시에서 e %= 4e = e % 4와 동일한 역할을 합니다.

6. 비트 AND 후 대입 (&=)

public class BitwiseAndAssignmentExample {
    public static void main(String[] args) {
        int f = 12; // 1100 in binary
        f &= 5; // 0101 in binary, f = f & 5

        System.out.println("f: " + f); // 출력: f: 4 (0100 in binary)
    }
}

위의 예시에서 f &= 5f = f & 5와 동일한 역할을 하며, 비트 수준에서 AND 연산을 수행합니다.

7. 비트 OR 후 대입 (|=)

public class BitwiseOrAssignmentExample {
    public static void main(String[] args) {
        int g = 9; // 1001 in binary
        g |= 3; // 0011 in binary, g = g | 3

        System.out.println("g: " + g); // 출력: g: 11 (1011 in binary)
    }
}

위의 예시에서 g |= 3g = g | 3과 동일한 역할을 하며, 비트 수준에서 OR 연산을 수행합니다.

8. 비트 XOR 후 대입 (^=)

public class BitwiseXorAssignmentExample {
    public static void main(String[] args) {
        int h = 6; // 0110 in binary
        h ^= 3; // 0011 in binary, h = h ^ 3

        System.out.println("h: " + h); // 출력: h: 5 (0101 in binary)
    }
}

위의 예시에서 h ^= 3h = h ^ 3과 동일한 역할을 하며, 비트 수준에서 XOR 연산을 수행합니다.

9. 왼쪽 시프트 후 대입 (<<=)

public class LeftShiftAssignmentExample {
    public static void main(String[] args) {
        int i = 4; // 0100 in binary
        i <<= 2; // i = i << 2

        System.out.println("i: " + i); // 출력: i: 16 (10000 in binary)
    }
}

위의 예시에서 i <<= 2i = i << 2와 동일한 역할을 하며, 비트를 왼쪽으로 두 번 이동시킵니다.

10. 오른쪽 시프트 후 대입 (>>=)

public class RightShiftAssignmentExample {
    public static void main(String[] args) {
        int j = 16; // 10000 in binary
        j >>= 2; // j = j >> 2

        System.out.println("j: " + j); // 출력: j: 4 (0100 in binary)
    }
}

위의 예시에서 j >>= 2j = j >> 2와 동일한 역할을 하며, 비트를 오른쪽으로 두 번 이동시킵니다.

11. 부호 없는 오른쪽 시프트 후 대입 (>>>=)

public class UnsignedRightShiftAssignmentExample {
    public static void main(String[] args) {
        int k = -16; // 11111111 11111111 11111111 11110000 in binary
        k >>>= 2; // k = k >>> 2

        System.out.println("k: " + k); // 출력: k: 1073741820 (00111111 11111111 11111111 11111100 in binary)
    }
}

위의 예시에서 k >>>= 2k = k >>> 2와 동일한 역할을 하며, 부호를 무시하고 비트를 오른쪽으로 두 번 이동시킵니다.

3. 대입 연산자의 사용 예

다양한 대입 연산자를 사용하는 예제를 보겠습니다:

public class AssignmentOperatorsDemo {
    public static void main(String[] args) {
        int a = 5;
        a += 2; // a = a + 2
        System.out.println("a += 2: " + a); // 7

        int b = 10;
        b -= 3; // b = b - 3
        System.out.println("b -= 3: " + b); // 7



 int c = 4;
        c *= 3; // c = c * 3
        System.out.println("c *= 3: " + c); // 12

        int d = 20;
        d /= 4; // d = d / 4
        System.out.println("d /= 4: " + d); // 5

        int e = 15;
        e %= 4; // e = e % 4
        System.out.println("e %= 4: " + e); // 3

        int f = 8;
        f &= 3; // f = f & 3
        System.out.println("f &= 3: " + f); // 0

        int g = 9;
        g |= 2; // g = g | 2
        System.out.println("g |= 2: " + g); // 11

        int h = 5;
        h ^= 3; // h = h ^ 3
        System.out.println("h ^= 3: " + h); // 6

        int i = 7;
        i <<= 2; // i = i << 2
        System.out.println("i <<= 2: " + i); // 28

        int j = 16;
        j >>= 2; // j = j >> 2
        System.out.println("j >>= 2: " + j); // 4

        int k = -16;
        k >>>= 2; // k = k >>> 2
        System.out.println("k >>>= 2: " + k); // 1073741820
    }
}

이 예제는 다양한 복합 대입 연산자를 사용하여 값에 대해 연산을 수행하고, 그 결과를 다시 변수에 저장하는 방법을 보여줍니다.

자바의 대입 연산자는 변수에 값을 할당하거나, 특정 연산을 간결하게 표현할 때 매우 유용합니다. 이를 효과적으로 활용하면 코드를 더 간단하고 명확하게 작성할 수 있습니다.

반응형