# Operators Precedence in Scala

An operator is a symbol that represents an operation to be performed with one or more operand. Operators are the foundation of any programming language. Which operator is performed first in an expression with more than one operators with different precedence is determined by operator precedence.

For example, 10 + 20 * 30 is calculated as 10 + (20 * 30) and not as (10 + 20) * 30.
when two operators of the same precedence appear in expression associativity is used. Associativity can be Right to Left or Left to Right. For example ‘*’ and ‘/’ have the same precedence and their associativity is Left to Right, so the expression “100 / 10 * 10” is worked as “(100 / 10) * 10”.

In below table operators with the highest precedence appear at the top of the table and operators with the lowest precedence appear at the bottom.

Operator

Category

Associativity

()[] Postfix

Left to Right

! ~ Unary Right to Left
* / % Multiplicative Left to Right
+ – Additive Left to Right
>> >>> << Shift Left to Right
< <= > >= Relational Left to Right
== != Relational is equal to/is not equal to Left to Right
== != Equality Left to Right
& Bitwise AND Left to Right
^ Bitwise exclusive OR Left to Right
| Bitwise inclusive OR Left to Right
&& Logical AND Left to Right
| | Logical OR Left to Right
= += -= *= /= %= >>= <<= &= ^= |= Assignment Right to left

,

Comma (separate expressions) Left to Right

Below is the example of operator Precedence.

Example :

 `// Scala program to show Operators Precedence ` ` `  `// Creating object ` `object` `gfg ` `{ ` `    ``// Main method ` `    ``def` `main(args``:` `Array[String]) ` `    ``{ ` `     `  `        ``var` `a``:``Int ``=` `20``; ` `        ``var` `b``:``Int ``=` `10``; ` `        ``var` `c``:``Int ``=` `15``; ` `        ``var` `d``:``Int ``=` `5``; ` `        ``var` `e ``=` `0` `         `  `        ``// operators with the highest precedence ` `        ``// will operate first ` `        ``e ``=` `a + b * c / d;  ` `             `  `        ``/* step 1: 20 + (10 * 15) /5 ` `            ``step 2: 20 + (150 /5) ` `        ``step 3:(20 + 30)*/` `             `  `        ``println(``"Value of a + b * c / d is : "` `+ e ) ` `     `  `    ``} ` `} `

Output:

`Value of a + b * c / d is : 50`

In above example e = a + b * c / d; here, e is assigned 50, not 120 because operator * has a higher precedence than / than +, so it first gets multiplied with 10 * 15, then divide by 5 and then add into 20.

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Previous
Next