Archive

Java Day 3 연산자

|

Java Day 3 연산자


  1. 연산자란?

    • 자료의 가공을 위해 정해진 방식에 따라 계산하고 결과를 얻기 위한 행위를 의미하는 기호들의 총칭

    • 연산자의 종류와 우선순위

      종류 연산자 우선순위
      최우선 연산자 . [] () 1
      단항 연산자 ! ~ +/- ++/– 2
      산술 연산자 * / % + - 3
      시프트 연산자 « » »> 4
      관계 연산자 < > <= >= == != 5
      비트 연산자 & | ^ 6
      논리 연산자 && || 7
      삼항 연산자 조건? 항1 : 항2 8
      배정 대입 연산자 *= /= %= += -= «= »= »>= &== |= ^= = 9
      후위형 증감 연산자 ++ – 10
      순차 연산자 , (콤마) 11
  2. 최우선 연산자

  • . 접근 연산자, [] 배열 참조 연산자, () 괄호 연산자(괄호로 묶으면 먼저 연산처리) 등
  1. 단항 연산자

    • +/- 부호 연산자 (양수,음수)
    // 부호 연산자의 산출 타입은 int가 된다
    short s = 99;
    short result = -s; // compile error
    // int result = -s; 이렇게 써야함
    
    • ++/– 증감 연산자
    int x1 = 10;
    int y1 = --x1;  //다른 연산이 수행되기 전 피연산자의 값이 1 감소
    System.out.println("x1 = " + x1); // x1 = 9, y1에 대입하기 전 1 감소
    System.out.println("y1 = " + y1); // y1 = 9
    
    int x2 = 10;
    int y2 = x2--;  //다른 연산을 수행한 후 피연산자의 값이 1 감소
    System.out.println("x2 = " + x2); // x2 = 9, y2에 10을 대입하고 1 감소
    System.out.println("y2 = " + y2); // y2 = 10
    
    • ! 논리부정, ~ 비트 부정 (정수형에만 사용 가능, 산출 타입은 int, long은 long에만)
  2. 산술 연산자

    • +, -, *, /, %
    • 정수(byte,short,char,int)의 사칙연산은 int가 나온다. 단, long 제외
    char d, e;
    d = 'a'; //97
    e = 'A'; //65
    int f = d+e; //int가 아닐 경우 compile error
    System.out.println("f의 값 : " + f); //162
    
    • NaN, Infinity 주의
    int a = 5;
    int b = 0;
    int c = a / b; //0으로 나누면 ArithmeticException 예외 발생
    
    int d = 5;
    double e = 0.0 //0에 한없이 가까운 근사치
    double f = d / e; //0에 한없이 가까운 값으로 나누면 Infinity 출력
    double g = d % e; //0에 한없이 가까운 값으로 나눈 나머지 NaN(Not a Number) 출력
    
  3. 시프트 연산자

    • « (Left Shift) 연산자 : 2진수 변환 후 왼쪽으로 숫자만큼 민다. 빈자리는 0으로 채움
    • ’»’ (Right Shift) 연산자 : 2진수 변환 후 오른쪽으로 숫자만큼 민다. 빈자리는 0으로 채움
    • ’»>’ (Unsigned Right Shift) 연산자 : ‘»‘와 같으나 음수일 경우에도 0으로 채움
  4. 관계 연산자

    • <, >, <=, >= 비교 관계 연산자
    • ==, != 항등 관계 연산자
  5. 비트 연산자

    • & (AND) 2진 비트에서 모두 1인 값만 1 출력, ‘ ’ (OR) 2진 비트에서 하나만 1이어도 1 출력, ^ (Exclusive OR) 2진 비트에서 하나만 1인 값만 1 출력
  6. 논리 연산자

    • && (AND) 둘 다 참이어야 참, ‘   ’ (OR) 둘 중 하나만 참이어도 참
  7. 삼항 연산자

    • 조건항 ? 항1 (true) : 항2 (false) 자바스크립트에서 참 많이 쓴다
    int score = 80;
    char grade = (score > 90) ? 'A' : 'B'; //false이므로 B 출력
    
  8. 배정 대입 연산자

    • +=, -=, *=, /=, %=, &=, ‘ =’, ^=, «=, »=, »>=
    • x += i ———> x = x + i 이렇게 풀어서 쓸 수 있다. 실제 연산속도에서는 차이가 없단다.

참고 자료


이것이자바다

자바프로그래밍100% 실전가이드

KG아이티뱅크 자바 강의자료