When we have to evaluate complex expressions in which appear operators of different types, we have to take into account the various precedences:

- logical negation (
`!`) - high precedence - arithmetic operators
- relational operators
- logical conjunction (
`&&`) and logical disjunction (`||`) - low precedence

*Example:*

a+2 == 3*b || !trovato && c < a/3is equivalent to

((a+2) == (3*b)) || ((!trovato) && (c < (a/3)))