본문 바로가기

JAVA

JAVA 연산자

 

자바 연산자 

자바 프로그래밍에서 연산자는 두 개 이상의 값을 조작하거나 비교하여 결과를 도출하는 데 사용되는 필수적인 요소입니다.

 

1. 자바 연산자 기본 개념

 

1.1 연산자의 종류:

  • 산술 연산자: 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 연산 등
  • 비교 연산자: 크기 비교, 같음/다름 비교 등
  • 논리 연산자: AND, OR, NOT 등
  • 조건부 연산자: 조건에 따라 다른 값을 선택하는 연산자 (?:)
  • 대입 연산자: 변수에 값을 할당하는 연산자 (=, +=, -=, *=, /= 등)
  • 증감 연산자: 변수 값을 증가시키거나 감소시키는 연산자 (++/--)
  • 비트 연산자: 비트 수준에서 연산을 수행하는 연산자 (AND, OR, XOR, NOT, <<, >> 등)
  • 문자열 연산자: 문자열을 조작하는 연산자 (+)
  • 참조 연산자: 객체 참조를 다루는 연산자 (&, |)
  • 인스턴스 생성 연산자: new 키워드를 사용하여 객체를 생성하는 연산자

1.2 연산자 우선순위:

  • 연산자는 우선순위에 따라 순서대로 수행됩니다.
  • 괄호 안의 연산자가 먼저 수행되고, 곱셈/나눗셈 연산자가 덧셈/뺄셈 연산자보다 먼저 수행됩니다.
  • 동일한 우선순위를 가진 연산자는 왼쪽에서 오른쪽 순으로 수행됩니다.

1.3 연산자 오버로딩:

  • 동일한 이름의 연산자를 다양한 데이터 타입에 대해 다르게 정의하는 기능입니다.
  • 코드 재사용성을 높이고 유연성을 향상시키는 데 도움이 됩니다.

2. 자바 연산자 심층 활용

 

2.1 산술 연산자:

  • 기본 연산: +,-,*,/,%
  • 자동 형변환: 연산 피연산자의 데이터 타입에 따라 자동 형변환이 발생할 수 있습니다.
  • 정수 연산:
    • int + int: int
    • long + long: long
    • int + long: long
  • 실수 연산: 모든 실수 연산은 double 타입으로 결과를 반환합니다.
  • 나머지 연산: 나눗셈의 나머지 값을 반환합니다.
  • 연산자 우선순위: 곱셈/나눗셈 > 덧셈/뺄셈

2.2 비교 연산자:

  • 크기 비교: >, <, >=, <=
  • 같음/다름 비교: ==, !=
  • 논리적 비교 연산자와의 차이: 비교 연산자는 두 값을 직접 비교하는 반면, 논리적 비교 연산자는 논리값을 비교합니다.

2.3 논리 연산자:

  • AND 연산자 (&&): 두 조건 모두 참일 때 true를 반환합니다.
  • OR 연산자 (||): 두 조건 중 하나라도 참일 때 true를 반환합니다.
  • NOT 연산자 (!): 논리값을 반전합니다.
  • 연산자 우선순위: NOT > AND/OR

2.4 조건부 연산자 (?:):

  • 조건에 따라 다른 값을 선택하는 연산자입니다.
  • 삼항 연산자라고도 불립니다 

    3. 논리 연산자 예시

    3 - 3 NOT 연산자:

    boolean isWeekend = false;
    
    boolean isNotWeekend = !isWeekend;
    
    System.out.println("주말 여부: " + isWeekend); // false
    System.out.println("주말이 아닌지 여부: " + isNotWeekend); // true
    
     

    3 - 4 연산자 우선순위:

    boolean condition1 = (num1 > 15) && (num2 < 30);
    boolean condition2 = num1 + num2 > 50;
    
    System.out.println(condition1 || condition2); // true (&& 연산자 > || 연산자)
    
     

    4. 조건부 연산자 (?:) 예시

    4 - 1 간단한 예시:

    int score = 85;
    String grade = (score >= 90) ? "A" : (score >= 80) ? "B" : (score >= 70) ? "C" : "F";
    
    System.out.println("학점: " + grade); // B
    

     

    4 - 2 여러 조건 처리:

    int day = 3;
    String dayName;
    
    switch (day) {
        case 1:
            dayName = "월요일";
            break;
        case 2:
            dayName = "화요일";
            break;
        case 3:
            dayName = "수요일";
            break;
        case 4:
            dayName = "목요일";
            break;
        case 5:
            dayName = "금요일";
            break;
        case 6:
            dayName = "토요일";
            break;
        case 7:
            dayName = "일요일";
            break;
        default:
            dayName = "잘못된 요일입니다.";
    }
    
    System.out.println("오늘은 " + dayName + "입니다."); // 수요일
    
     

    5. 증감 연산자 (++) 예시

    5 - 1 변수 값 증가:

    int num = 10;
    
    System.out.println(num); // 10
    
    num++;
    System.out.println(num); // 11
    
    num += 5;
    System.out.println(num); // 16
    

     

    5 - 2 for 문에서 활용:

    for (int i = 1; i <= 10; i++) {
        System.out.print(i + " ");
    }
    
     

    5 - 3 후위 증감 연산자:

    int num = 10;
    
    int result1 = num++; // num 값을 먼저 result1에 할당하고 1 증가
    int result2 = ++num; // 1 증가 후 num 값을 result2에 할당
    
    System.out.println("result1: " + result1); // 10
    System.out.println("result2: " + result2); // 11
    System.out.println("num: " + num); // 11
    
     

    6. 비트 연산자 예시

    6 - 1 AND 연산자 (&):

    int num1 = 10; // 00001010
    int num2 = 5;  // 00000101
    
    int result = num1 & num2; // 00000000
    System.out.println(result); // 0
    
     

    6 - 2 OR 연산자 (|):

    int num1 = 10; // 00001010
    int num2 = 5;  // 00000101
    
    int result = num1 | num2; // 00001111
    System.out.println(result); // 15
    
     

    6 - 3 XOR 연산자 (^):

    int num1 = 10; // 00001010
    int num2 = 5;  // 00000101
    
    int result = num1 ^ num2; // 00001111
    
  •  
    1. 산술 연산자 예시
     

    1 - 1 기본 연산:

    int num1 = 10;
    int num2 = 20;
    
    System.out.println(num1 + num2); // 30
    System.out.println(num1 - num2); // -10
    System.out.println(num1 * num2); // 200
    System.out.println(num1 / num2); // 0.5
    System.out.println(num1 % num2); // 10
    
     

    1 - 2 자동 형변환:

    int num1 = 10;
    long num2 = 20L;
    
    System.out.println(num1 + num2); // 30 (int + long -> long)
    System.out.println(num1 * 1.5); // 15.0 (int * double -> double)
    
     

    1 - 3 정수 연산:

     
    int num1 = 10;
    int num2 = 2000000000;
    
    System.out.println(num1 + num2); // 2000000010 (int + int -> int)
    System.out.println(num1 + (long)num2); // 2000000020 (int + long -> long)
    
     

    1 - 4 실수 연산:

    double num1 = 3.14;
    double num2 = 2.718;
    
    System.out.println(num1 + num2); // 5.858
    System.out.println(num1 * num2); // 8.53278
    

     

    1 - 5 나머지 연산:

    int num1 = 17;
    int num2 = 5;
    
    System.out.println(num1 % num2); // 2
    
     

    1 - 6 연산자 우선순위:

    int num1 = 10 * 20;
    int num2 = 100 + 50 / 2;
    
    System.out.println(num1 + num2); // 300 (곱셈/나눗셈 > 덧셈/뺄셈)
    
     

    2. 비교 연산자 예시

    2 - 1 크기 비교:

    int num1 = 10;
    int num2 = 20;
    
    System.out.println(num1 > num2); // false
    System.out.println(num1 < num2); // true
    System.out.println(num1 >= num2); // false
    System.out.println(num1 <= num2); // true
    
     

    2 - 2 같음/다름 비교:

    String str1 = "Hello";
    String str2 = "Hello";
    String str3 = new String("Hello");
    
    System.out.println(str1 == str2); // true
    System.out.println(str1 == str3); // false
    System.out.println(str1.equals(str3)); // true
    
     

    2 - 3 논리적 비교 연산자와의 차이:

    int num1 = 10;
    int num2 = 20;
    
    System.out.println((num1 > 15) && (num2 < 30)); // true (두 조건 모두 참)
    System.out.println((num1 > 15) || (num2 < 30)); // true (두 조건 중 하나라도 참)
    
    boolean condition1 = num1 > 15;
    boolean condition2 = num2 < 30;
    
    System.out.println(condition1 && condition2); // true (두 조건 모두 참)
    System.out.println(condition1 || condition2); // true (두 조건 중 하나라도 참)
    
     

'JAVA' 카테고리의 다른 글

JAVA 반복문 While 문  (0) 2024.05.26
JAVA 반복문 for 문  (0) 2024.05.26
JAVA Import  (0) 2024.05.26
JAVA 스캐너 (Scanner)  (0) 2024.05.26
JAVA 이스케이프 문자 (Esacape)  (0) 2024.05.26