자바

자바 연산자

thebasics 2024. 8. 14. 17:00

목차
1. 연산자란 무엇인가?
2. 산술 연산자
3. 비교 연산자
4. 논리 연산자
5. 비트 연산자
6. 대입 연산자
7. 기타 연산자
8. 코드 예제와 분석
9. 결론 및 추가 학습 자료


1. 연산자란 무엇인가?

연산자는 변수나 값에 대한 연산을 수행하는 데 사용되는 기호입니다. 자바에는 다양한 종류의 연산자가 있으며, 각 연산자는 특정한 작업을 수행합니다. 연산자를 사용하면 데이터를 조작하고, 조건을 평가하며, 논리적 결정을 내릴 수 있습니다.


2. 산술 연산자

산술 연산자는 수치 계산에 사용됩니다. 자바에서 제공하는 산술 연산자는 다음과 같습니다:

- '+' : 덧셈
- '-' : 뺄셈
- '*' : 곱셈
- '/' : 나눗셈
- '%' : 나머지

산술 연산자 예제:

public class ArithmeticOperators {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;

        System.out.println("a + b = " + (a + b));
        System.out.println("a - b = " + (a - b));
        System.out.println("a * b = " + (a * b));
        System.out.println("a / b = " + (a / b));
        System.out.println("a % b = " + (a % b));
    }
}

3. 비교 연산자

비교 연산자는 두 값을 비교하고 그 결과를 논리값으로 반환합니다. 자바에서 제공하는 비교 연산자는 다음과 같습니다:

- '==' : 두 값이 같은지 비교
- '!=' : 두 값이 다른지 비교
- '>' : 왼쪽 값이 오른쪽 값보다 큰지 비교
- '<' : 왼쪽 값이 오른쪽 값보다 작은지 비교
- '>=' : 왼쪽 값이 오른쪽 값보다 크거나 같은지 비교
- '<=' : 왼쪽 값이 오른쪽 값보다 작거나 같은지 비교

비교 연산자 예제:

public class ComparisonOperators {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;

        System.out.println("a == b: " + (a == b));
        System.out.println("a != b: " + (a != b));
        System.out.println("a > b: " + (a > b));
        System.out.println("a < b: " + (a < b));
        System.out.println("a >= b: " + (a >= b));
        System.out.println("a <= b: " + (a <= b));
    }
}

4. 논리 연산자

논리 연산자는 논리값을 조작하는 데 사용됩니다. 자바에서 제공하는 논리 연산자는 다음과 같습니다:

- '&&' : 논리 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));
        System.out.println("x || y: " + (x || y));
        System.out.println("!x: " + (!x));
        System.out.println("!y: " + (!y));
    }
}

5. 비트 연산자

비트 연산자는 비트 단위로 연산을 수행합니다. 자바에서 제공하는 비트 연산자는 다음과 같습니다:

- '&' : 비트 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
        System.out.println("a | b: " + (a | b)); // 0111
        System.out.println("a ^ b: " + (a ^ b)); // 0110
        System.out.println("~a: " + (~a)); // 1010
        System.out.println("a << 1: " + (a << 1)); // 1010
        System.out.println("a >> 1: " + (a >> 1)); // 0010
        System.out.println("a >>> 1: " + (a >>> 1)); // 0010
    }
}

6. 대입 연산자

대입 연산자는 변수에 값을 할당하는 데 사용됩니다. 자바에서 제공하는 대입 연산자는 다음과 같습니다:

- '=' : 값 할당
- '+=' : 더한 값을 할당
- '-=' : 뺀 값을 할당
- '*=' : 곱한 값을 할당
- '/=' : 나눈 값을 할당
- '%=' : 나머지 값을 할당
- '&=' : 비트 AND 후 할당
- '|=' : 비트 OR 후 할당
- '^=' : 비트 XOR 후 할당
- '<<=' : 왼쪽 시프트 후 할당
- '>>=' : 오른쪽 시프트 후 할당
- '>>>=' : 논리적 오른쪽 시프트 후 할당

대입 연산자 예제:

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

        a -= 2; // a = a - 2
        System.out.println("a -= 2: " + a);

        a *= 4; // a = a * 4
        System.out.println("a *= 4: " + a);

        a /= 2; // a = a / 2
        System.out.println("a /= 2: " + a);

        a %= 5; // a = a % 5
        System.out.println("a %= 5: " + a);

        a &= 3; // a = a & 3
        System.out.println("a &= 3: " + a);
        
        a |= 3; // a = a | 3
        System.out.println("a |= 3: " + a);        

        a ^= 3; // a = a ^ 3
        System.out.println("a ^= 3: " + a);

        a <<= 3; // a = a << 3
        System.out.println("a <<= 3: " + a);

        a >>= 3; // a = a >> 3
        System.out.println("a >>= 3: " + a);

        a >>>= 3; // a = a >>>= 3
        System.out.println("a >>>= 3: " + a);
    }
}

7. 기타 연산자

자바에서는 다음과 같은 기타 연산자도 제공됩니다:

- 삼항 연산자: 조건에 따라 값을 선택합니다.
  - 구문: '조건식 ? 참일 때의 값 : 거짓일 때의 값'
- instanceof 연산자: 객체가 특정 클래스의 인스턴스인지 확인합니다.
  - 구문: '객체 instanceof 클래스'

기타 연산자 예제:

public class OtherOperators {
    public static void main(String[] args) {
        // 삼항 연산자
        int a = 5;
        int b = 10;
        int max = (a > b) ? a : b;
        System.out.println("Max value: " + max);

        // instanceof 연산자
        String str = "Hello";
        boolean result = str instanceof String;
        System.out.println("str is an instance of String: " + result);
    }
}

8. 코드 예제와 분석

다양한 연산자를 사용하는 예제를 종합하여 살펴보겠습니다.

public class OperatorsExample {
    public static void main(String[] args) {
        // 산술 연산자
        int a = 10;
        int b = 5;
        System.out.println("a + b = " + (a + b));
        System.out.println("a - b = " + (a - b));
        System.out.println("a * b = " + (a * b));
        System.out.println("a / b = " + (a / b));
        System.out.println("a % b = " + (a % b));

        // 비교 연산자
        System.out.println("a == b: " + (a == b));
        System.out.println("a != b: " + (a != b));
        System.out.println("a > b: " + (a > b));
        System.out.println("a < b: " + (a < b));
        System.out.println("a >= b: " + (a >= b));
        System.out.println("a <= b: " + (a <= b));

        // 논리 연산자
        boolean x = true;
        boolean y = false;
        System.out.println("x && y: " + (x && y));
        System.out.println("x || y: " + (x || y));
        System.out.println("!x: " + (!x));

        // 비트 연산자


        int c = 5; // 0101 in binary
        int d = 3; // 0011 in binary
        System.out.println("c & d: " + (c & d)); // 0001
        System.out.println("c | d: " + (c | d)); // 0111
        System.out.println("c ^ d: " + (c ^ d)); // 0110
        System.out.println("~c: " + (~c)); // 1010
        System.out.println("c << 1: " + (c << 1)); // 1010
        System.out.println("c >> 1: " + (c >> 1)); // 0010

        // 대입 연산자
        int e = 5;
        e += 3;
        System.out.println("e += 3: " + e);
        e -= 2;
        System.out.println("e -= 2: " + e);
        e *= 4;
        System.out.println("e *= 4: " + e);
        e /= 2;
        System.out.println("e /= 2: " + e);
        e %= 3;
        System.out.println("e %= 3: " + e);

        // 기타 연산자
        int f = (a > b) ? a : b;
        System.out.println("f: " + f);
        String str = "Hello";
        boolean result = str instanceof String;
        System.out.println("str is an instance of String: " + result);
    }
}

코드 분석:

- 산술 연산자: '+', '-', '*', '/', '%'를 사용하여 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 연산을 수행합니다.
- 비교 연산자: '==', '!=', '>', '<', '>=', '<='를 사용하여 두 값을 비교합니다.
- 논리 연산자: '&&', '||', '!'를 사용하여 논리적 AND, OR, NOT 연산을 수행합니다.
- 비트 연산자: '&', '|', '^', '~', '<<', '>>'를 사용하여 비트 단위로 연산을 수행합니다.
- 대입 연산자: '+=', '-=', '*=', '/=', '%='를 사용하여 값을 변수에 할당합니다.
- 기타 연산자: 삼항 연산자 '? :'와 'instanceof' 연산자를 사용하여 조건에 따른 값 선택과 객체의 타입을 확인합니다.


9. 결론 및 추가 학습 자료

이번 글에서는 자바의 다양한 연산자에 대해 살펴보았습니다. 연산자를 잘 활용하면 코드를 효율적으로 작성하고, 데이터를 효과적으로 조작할 수 있습니다. 연산자에 대한 이해를 바탕으로 자바 프로그래밍의 기본기를 탄탄히 다질 수 있습니다. 다음은 추가 학습 자료입니다:

추가 학습 자료:
- 자바 공식 문서: [Oracle Java Documentation](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html)
- 온라인 자바 튜토리얼: [W3Schools Java Operators](https://www.w3schools.com/java/java_operators.asp)
- 자바 코딩 연습 사이트: [GeeksforGeeks](https://www.geeksforgeeks.org/100-days-of-java/)

자바는 강력한 기능을 가진 프로그래밍 언어로, 꾸준히 학습하면 다양한 응용 프로그램을 개발할 수 있습니다. 이번 기회를 통해 자바의 연산자를 잘 이해하고 더 나아가 복잡한 프로그래밍을 익히길 바랍니다.


이제 자바의 연산자에 대해 자세히 이해하게 되었습니다. 다음 글에서는 자바의 조건문에 대해 다루도록 하겠습니다. 자바의 더 깊은 이해를 위해 계속해서 학습해나가세요!

반응형

'자바' 카테고리의 다른 글

자바 반복문  (0) 2024.08.16
자바 조건문  (0) 2024.08.15
자바 변수와 자료형  (0) 2024.08.13
자바 Hello World 프로그램  (0) 2024.08.12
자바 소개 및 설치 가이드  (0) 2024.08.11