▼ 표 2-1 연산자 우선순위

    분류

    연산자

    예제

    우선순위를 감안한 해석

    후위

    ++ --.

    a*b++

    a*(b++)

    ++b--

    ++(b--)

    a*b.foo()

    a*(b.foo())

    전위

    + - ++ -- !

    +a*b

    (+a)*b

    ++a*b

    (++a)*b

    !a || b

    (!a) || b

    곱셈

    *, /, %

    a*b + c

    (a*b) + c

    a – b%c

    a - (b*c)

    덧셈

    +, -

    a + b and c

    (a + b) and c

    중위

    이름이 붙은 중위 연산자들

    a < b or b < c

    (a < (b or b)) < c

    a == b and b == c

    (a == b) and (b == c)

    비교

    < > <= >=

    a < b == b < c

    (a < b) == (b < c)

    a < b && b < c

    (a < b) && (b < c)

    동등

    == !=

    a == b || b != c

    (a == b) || (b != c)

    논리곱(conjunction)

    &&

    a || b && c

    a || (b && c)

    논리합(disjunction)

    ||

    a && b || c

    (a && b) || c

    대입

    = += -= *= /= %=

    a = b*c

    a = (b*c)

    a *= a + b

    a *= (a + b)

    우선순위가 같은 이항 연산자는 왼쪽에서 오른쪽으로 순서대로 계산된다.

    a.foo().bar()                     // (a.foo()).bar()
    a * b % c                         // (a * b) % c
    (a == 1) or (b < 1) and (c > 1)   // ((a == 1>) or (b < 1>)) and (c > 1)

    이 책의 뒷부분에서 이 표를 더 세분화하는 연산을 그때그때 소개하겠다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.