☕
java handbook
  • Part 01. Hello World!
    • Java 환경설정
    • Java 학습 Flow
    • JVM
    • 변수
      • 상수와 리터럴
      • 기본형과 참조형
      • 문자와 문자열
  • Part 02. 연산자
    • 증감 연산자와 부호 연산자
    • 형변환 연산자와 자동 형변환
    • 사칙 연산자와 산술변환
    • Math 클래스와 나머지 연산자
    • 비교 연산자와 문자열의 비교
    • 논리 연산자와 비트 연산자
    • 조건 연산자와 대입 연산자
  • Part 03. 조건문과 반복문
    • IF
    • SWITCH
    • FOR
    • 임의의 정수 만들기
    • WHILE
    • break 와 continue
  • Part 04. 배열
    • 배열의 길이와 초기화
    • 배열 연습하기
    • String 배열
    • 2차원 배열
    • Array
  • Part 05. 객체지향
    • 클래스와 객체
    • 객체의 생성과 배열
    • 클래스의 정의
    • 변수의 종류
    • 메서드
    • 기본형 매개변수 와 참조형 매개변수
    • static 메서드와 인스턴스 메서드
    • 오버로딩
    • 생성자
    • this 와 this()
    • 변수의 초기화
Powered by GitBook
On this page
  • 연산자와 피연산자 구별하기
  • 연산자의 종류
  • 연산자의 우선순위
  • 연산자 우선순위 표
  • 우선순위 연습하기
  • 연산자의 결합규칙
  • 3줄 요약

Part 02. 연산자

연산자와 피연산자 구별하기

9 * x + 3

  • 연산자 : 연산을 수행하는 기호 -> * , +

  • 피연산자 : 연산자의 연산 수행 대상 -> 9 , x , 3

"모든 연산자는 연산결과를 반환한다."

  • 즉, 연산결과를 반환하지 않으면 연산자가 아니다.

    • ex) () -> 괄호는 연산자가 아니다.

연산자의 종류

종류
연산자
설명

산술 연산자

+ - * / % << >>

사칙 연산과 나머지 연산(%)

비교 연산자

< > >= <= == !=

크고 작음과 같고 다름을 비교

논리 연산자

&& || ! & | ^ ~

'그리고(AND)' 와 '또는(OR)' 으로 조건을 연결

대입 연산자

=

우변의 값을 좌변에 저장

기타 연산자

(type) ?: instanceof

형변환 연산자, 삼항 연산자, instanceof연산자

연산자의 우선순위

하나의 식에 연산자가 둘 이상 있을 때, 어떤 연산을 먼저 수행 할지를 자동 결정하는 것!

= > 5 + 3 * 4

  1. 3 * 4

  2. 5 + 12

연산 순서를 수동으로 결정하고 싶다면 괄호() 를 사용하면 됩니다.

= > (5 + 3) * 4

  1. 5 + 3

  2. 8 * 4

연산자 우선순위 표

우선순위
연산자
설명
결합 방향

1

[]

첨자 연산자

왼쪽에서 오른쪽으로

.

멤버 연산자

왼쪽에서 오른쪽으로

2

++

후위 증가 연산자

왼쪽에서 오른쪽으로

--

후위 감소 연산자

왼쪽에서 오른쪽으로

3

!

논리 NOT 연산자

오른쪽에서 왼쪽으로

~

비트 NOT 연산자

오른쪽에서 왼쪽으로

+

양의 부호 (단항 연산자)

오른쪽에서 왼쪽으로

-

음의 부호 (단항 연산자)

오른쪽에서 왼쪽으로

++

전위 증가 연산자

오른쪽에서 왼쪽으로

--

전위 감소 연산자

오른쪽에서 왼쪽으로

(타입)

타입 캐스트 연산자

오른쪽에서 왼쪽으로

4

*

곱셈 연산자

왼쪽에서 오른쪽으로

/

나눗셈 연산자

왼쪽에서 오른쪽으로

%

나머지 연산자

왼쪽에서 오른쪽으로

5

+

덧셈 연산자 (이항 연산자)

왼쪽에서 오른쪽으로

-

뺄셈 연산자 (이항 연산자)

왼쪽에서 오른쪽으로

6

<<

비트 왼쪽 시프트 연산자

왼쪽에서 오른쪽으로

>>

부호 비트를 확장하면서 비트 오른쪽 시프트

왼쪽에서 오른쪽으로

>>>

부호 비트까지 모두 비트 오른쪽 시프트

왼쪽에서 오른쪽으로

7

<

관계 연산자(보다 작은)

왼쪽에서 오른쪽으로

<=

관계 연산자(보다 작거나 같은)

왼쪽에서 오른쪽으로

>

관계 연산자(보다 큰)

왼쪽에서 오른쪽으로

>=

관계 연산자(보다 크거나 같은)

왼쪽에서 오른쪽으로

instanceof

인스턴스의 실제 타입 반환

왼쪽에서 오른쪽으로

8

==

관계 연산자(와 같은)

왼쪽에서 오른쪽으로

!=

관계 연산자(와 같지 않은)

왼쪽에서 오른쪽으로

9

&

비트 AND 연산자

왼쪽에서 오른쪽으로

10

^

비트 XOR 연산자

왼쪽에서 오른쪽으로

11

|

비트 OR 연산자

왼쪽에서 오른쪽으로

12

&&

논리 AND 연산자

왼쪽에서 오른쪽으로

13

||

논리 OR 연산자

왼쪽에서 오른쪽으로

14

? :

삼항 조건 연산자

오른쪽에서 왼쪽으로

15

=

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

오른쪽에서 왼쪽으로

우선순위 연습하기

class Operator1_1 {
    public static void main(String[] args) {
        int x = 10;
        int y = 20;

        // + 연산자는 피연산자가 2개인 이항 연산자 임으로 단항 연산자인 -x 의 -가 먼저 실행된다.
        System.out.print("-x + 3 = ");
        System.out.println(-x + 3); // -10 + 3 = -7

        System.out.print("x + 3 * y = ");
        System.out.println(x + 3 * y); // 10 + (3 * 20) = 70

        System.out.print("x + 3 > y - 2 = ");
        System.out.println(x + 3 > y - 2); // false
        System.out.print("x + 3 < y - 2 = ");
        System.out.println(x + 3 < y - 2); // true

        System.out.print("x > 3 && y < 2 = ");
        System.out.println(x > 3 && y < 2); // false

        int result = x + y * 3;
        System.out.println("result = " + result); // 10 + (20 * 3), result = 70
    }
}

연산자의 결합규칙

우선순위가 같은 연산자가 있을 때, 어떤 것을 먼저?

= > 3 + 4 - 5 -> (3 + 4) - 5

  • 기본적인 계산 순서는 왼쪽에서 오른쪽

  • 대입과 단항 연산자일 경우 오른쪽에서 왼쪽

3줄 요약

1. 산술 > 비교 > 논리 > 대입 : 대입은 제일 마지막에 수행됩니다.

2. 단항(1) > 이항(2) > 삼항(3) : 단항 연산자의 우선순위가 제일 높습니다.

3. 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행 방향은 왼쪽에서 오른쪽입니다.

Ref. Java의 정석 기초편 Chapter3(1, 2, 3, 4)

Previous문자와 문자열Next증감 연산자와 부호 연산자

Last updated 2 years ago

Ref. ,

연산자와피연산자
우선순위와결합규칙