- Read Tutorial
- Watch Guide Video
When using arithmetic operators, it's important to understand the order of operations as the compiler uses a specific format to determine this order.
A good way to remember this order is with the acronym PEMDAS or with the sentence Please Excuse My Dear Aunt Sally.
What this stands for is:
- P
- Parentheses
- E
- Exponent
- M
- Multiplication
- D
- Division
- A
- Addition
- S
- Subtraction
So, what does this order mean for a problem/equation?
Let's say that we need to run an equation with all these operators, but in a different order. For example,
5 + 15 * 20 - 2 / 6 ** 3 - (3 + 1)
In the above problem, we have all the six operations included. If we run this code, it gives a value of 301
.
To break it down, the compiler first looked for parentheses, so it computed the value (3+1)
, which is 4
. Then, it handled the exponent 6**3
, which is 216
. Next is multiplication, so 20 * 15
is 300
. Now for division, 2/216
will be equal to 0
(it's not really zero but we'll discuss in a future lesson). Next, it focuses on addition: 5 + 300
which equals 305
. And lastly subtraction: 305 - 4 = 301
.
You can see it step-by-step path here:
5 + 15 * 20 - 2 / 6 ** 3 - (3 + 1) # parenthesis 5 + 15 * 20 - 2 / 6**3 - 4 # exponents 5 + 15 * 20 - 2 / 216 - 4 # multiplication 5 + 300 - 2 / 216 - 4 # division 5 + 300 - 0 - 4 # addition 305 - 0 - 4 # subtraction 301
Now, this format is not just for numbers, but also for other programming component such as conditionals (which we will cover in a future section). For example, if you have a conditional like this,
if (x > 7 && y < 19) || z == 5
The value inside the parentheses will get executed first.