프로그래밍/자바공부 - Chapter별

Chapter03

leecoder 2021. 9. 6. 16:51

연산자 정의, 우선순위

  1. 연산자 : 연산을 수행하는 기호
  2. 피연산자 : 연산자의 작업 대상(변수, 상수, 리터럴, 수식 등)
  3. 우선순위
    • 산술 > 비교 > 논리 > 대입
    • 단항 > 이항 > 삼항
    • 단항, 대입 연산자를 제외한 모든 연산자는 좌측에서 우측 순이다.

산술 연산자

  1. + : System.out.println( 3 + 5 );  // 8
  2. - : System.out.println( 3 - 5 );   // -2
  3. * : System.out.println( 3 * 5 );   // 15
  4. / : System.out.println( 3 / 5 );   // 0 : 몫 연산자 -> 정수/정수하여 결과가 정수 나옴
        System.out.println( 3 / 0 );
        System.out.println( 3.14 / 0 );   //결과 : Infinity(무한대) 리터럴값
  5. % : System.out.println( 3 % 5 ); // 3 : 나머지 연산자
         System.out.println( 3 % 0 );
         System.out.println( 3.14 % 0 ); //결과 : NaN(Not a Number) 리터럴 값
  6. 어떤 정수를 0으로 나누거나 나머지를 구할 때 오류 발생
           └> ArithmeticException(산술적 예외 발생): / by zero
  7. 우선순위 : (* / %) -> (+ -)

비교 연산자

  1. 연산 결과가 Boolean(true, false) 값으로 나옴
  2. > : System.out.println(3 > 5);     // false
  3. < : System.out.println(3 < 5);     // true
  4. <= : System.out.println(3 >= 5); // false
  5. >= : System.out.println(3 <= 5); // true
  6. == : System.out.println(3 == 5); // false
  7. != : System.out.println(3 != 5);   // true

일반 논리 연산자

  1. && : 일반 논리 AND 연산자
    true(1) && true(1)  => true(1)
    true(1) && false(0) => false(0)
    false(0) && true(1) => false(0)
    false(0) && false(0) => false(0)
  2. || : 일반 논리 OR 연산자
    true(1) && true(1)  => false(0)
    true(1) && false(0) => true(1)
    false(0) && true(1) => true(1)
    false(0) && false(0) => true(1)
  3. ! : 부정(NOT) 연산자 -> 주의할 점 : Boolean형 값 앞에만 사용할 수 있다.
    ! true(1) => false(0)
    ! false(0) => true(1)
  4. 4. 우선순위 : ! > && > ||
  5. ex 1) x는 10보다 크고, 20보다 작다
    10 < x < 20 -> X
    x > 10 && x < 20 -> O
  6. ex 2) i는 2의 배수 또는 3의 배수이다.
    i % 2 == 0 || i % 3 == 0
  7. ex 3) 문자 ch는 숫자 ('0'~'9')이다.
    ch >= '0' && ch <= '9’

비트 논리 연산자

  1. ~ 틸드(비트 부정) 연산자 : 0 -> 1, 1 -> 0                               0000 0100
    ~10 -> -11 => 0b 0000 1010 -> 0b 1111 0101                       0000 0011
  2. & (비트 AND) 연산자 : 둘 다 1일 때 1, 하나라도 0이면 0         & 0000 0000
  3. | (비트 OR) 연산자 : 둘 다 0일 때 0, 하나라도 1이면 1               | 0000 0111
  4. ^ (비트 XOR) 연산자 : 두 값이 다를 때 1, 같으면 0                  ^ 0000 0111

시프트 연산자

  1. << : 빈 공백을 무조건 0으로 채운다.
           x * 2^n
           0000 1111 << 2 => 0011 1100
  2. >> : 최상위 비트가 0(양수) 면 빈 공백을 0으로 채우고, 1(음수) 면 1로 채운다.
           x e 2^-n
           0000 1111 >> 2 => 0000 0011
           1000 1111 >> 2 => 1110 0011
          └> 최상위 비트
  3. >>> : 빈 공백을 무조건 0으로 채운다.

증감 연산자(++, --)

  1. 전위형, 후위형 증감 연산자가 있다.
  2. 단독으로 사용될 때는 전위형, 후위형 같은 결과
  3. 다른 변수와 같이 사용될 때는 전위형은 먼저 증가한 것을 사용하고, 후위형은 사용된 후에 증가한다.

복합 대입 연산자( op= )

  1. 종류 : +=, -=, *=, /=, %=, <<=, >>= 등
  2. 연산 방법 : x op= n; == x = x op n;

문자열 비교방법

  1. equals() 함수 사용, == 비교 연산자 사용 X

효율적인 연산

  1. && 연산자 (true && true = true)
    3 > 5 && 4 < 100 => 앞이 거짓이므로 뒤에는 계산 안 하고 넘어감
  2. || 연산자 (true || = true)
    3 < 5 || 4 < 100 => 앞이 참이므로 뒤에는 계산 안 하고 넘어감

기능, 항 개수에 따른 연산자

  1. 기능 : 산술 연산자, 비교 연산자, 논리 연산자, 시프트 연산자
  2. 항 개수
    • 단항 연산자 : !(부정 연산자), ++, --(증감 연산자), +, -(부호 연산자)
    • 이항 연산자 : 산술 연산자, 비교 연산자, 논리 연산자
    • 삼항 연산자 : 기호 => 항 1? 항 2 : 항 3
                        사용법 : 항 1? 항 2 : 항 3 => 항 1에는 조건문이 들어옴
                        결과    : 항 1이 참이면 결과는 항 2, 거짓이면 결과는 항 3

'프로그래밍 > 자바공부 - Chapter별' 카테고리의 다른 글

Chapter04  (0) 2021.09.08
Chapter02  (0) 2021.09.06
Chapter01  (0) 2021.08.24