더북(TheBook)

▼ 표 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)

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

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