본문 바로가기
공부/Java

CHAPTER-03-연산자

by 자피킨치 2020. 7. 4.

https://github.com/su-bin/TIL/edit/master/java_study/chapter03

CHAPTER-03-연산자

연산자와 연산식

  • 연산(operations) : 프로그램에서 데이터를 처리하여 결과를 산출
  • 연산자(operator) : 연산에 사용되는 표시나 기호
  • 피연산자(operand) : 연산되는 데이터
  • 연산식(expressions) : 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것
연산자 동류 연산자 피연산자 수 산출값 기능 설명
산술 +, -, *, /, % 이항 숫자 사칙연산 및 나머지 계산
부호 +, - 단항 숫자 음수와 양수의 부호
문자열 + 이항 문자열 두 문자열을 연결
대입 =, +=, -=. *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>= 이항 다양 우변의 값을 좌변의 변수에 대입
증감 ++, -- 단항 숫자 1만큼 증가/감소
비교 ==, !=, >, <, >=, <=, instanceof 이항 boolean 값의 비교
논리 !, &, |, &&, || 단항, 이항 boolean 논리적 NOT, AND, OR 연산
조건 (조건식) ? A : B 삼항 다양 조건에 따라 A 또는 B 중 하나를 선택
비트 ~, &, |, ^ 단항, 이항 숫자, boolean 비트 NOT, AND, OR, XOR 연산
쉬프트 >>, <<, >>> 이항 숫자 비트를 좌측/우측으로 밀어서 이동

연산의 방향과 우선순위

연산자 연산 방향 우선순위
증감(++, --), 부호(+, -), 비트(~), 논리(!) 높음
산술(*, /, %)
산술(+, -) |
쉬프트(<<, >>, >>>) |
비교(<, >, <=, >=, instanceof) |
비교(==, !=) |
논리(&) |
논리(^) |
논리(|) |
논리(&&) |
논리(||) |
조건(?:)
대입(=, +=, -=, *=, /=, %=, ^=, |=, <<=, >>=, >>>=) 낮음
  1. 단항, 이항, 삼항 연산자 순으로 우선순위를 가진다.
  2. 산술, 비교, 논리, 대입 연산자 순으로 우선순위를 가진다.
  3. 단항과 대입 연산자를 제외한 모든 연산의 방향은 왼쪽에서 오른쪽이다(→).
  4. 복잡한 연산식에는 괄호()를 사용해서 우선순위를 정해준다.

단항 연산자

  • 피연산자가 단 하나뿐인 연산자

    부호 연산자(+, -)

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

    논리부정 연산자(!)

    비트 반전 연산자(~)

이항 연산자

  • 피연산자가 두 개인 연산자

    산술 연산자(+, -, *, /, %)

    문자열 연결 연산자(+)

    비교 연산자(<, <=, >, >=, ==, !=)

    public class StringEqualsExample {
      public static void main(String[] args){
        String strVar1 = "이수빈";
        String strVar2 = "이수빈";
        String strVar3 = new String("이수빈");
    
        System.out.println(strVar1 == strVar2);           // true
        System.out.println(strVar1 == strVar3);           // false
        System.out.println();
        System.out.println(strVar1.equals(strVar2));      // true
        System.out.println(strVar1.equals(strVar3));      // true
      }
    }

    논리 연산자(&&, ||, &, |, ^, !)

    비트 연산자(&, |, ^, ~, <<, >>, >>>)

    대입 연산자(=, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>=)

삼항 연산자

조건식 ? 값 또는 연산식 : 값 또는 연산식

public class ConditionalOperationExample {
    public static void main(String[] args){
      int score =85;
      char grade = (score > 90) ? 'A' : ((score > 80 ? 'B' : 'C'));
      System.out.println(score + "점 " + grade);
    }
}

'공부 > Java' 카테고리의 다른 글

CHAPTER-05-참조-타입  (0) 2020.07.04
CHAPTER-04-조건문과-반복문  (0) 2020.07.04
CHAPTER-03-연산자  (0) 2020.07.04
CHAPTER-02-변수와-타입  (0) 2020.07.04
CHAPTER-01-자바-시작하기  (0) 2020.07.04

댓글0