- Comprehensive Ruby Programming
- Jordan Hudgens
- 336字
- 2021-07-02 21:13:29
Arithmetic order of operations
When using arithmetic operators, it's important to understand the order of operations, as the compiler uses a specific format to determine this order.
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 preceding 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 the 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 15 * 20 is 300. Now, for division, 2/216 will be equal to 0 (it's not really zero, but we'll discuss this in the next section). Next, it focuses on addition, 5 + 300 which equals 305. And lastly subtraction: 305 - 4 which equals 301.
You can see the 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
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 as follows:
- P: Parentheses
- E: Exponent
- M: Multiplication
- D: Division
- A: Addition
- S: Subtraction
Now, this format is not just for numbers but also for other programming components such as conditionals (which we will cover in a future section). Consider this example, where you have a conditional like the following:
if (x > 7 && y < 19) || z == 5
The value inside the parentheses will get executed first.
- 單片機C語言程序設計實訓100例:基于STC8051+Proteus仿真與實戰
- Apache Spark 2.x Machine Learning Cookbook
- Java應用開發與實踐
- iOS開發實戰:從零基礎到App Store上架
- Python測試開發入門與實踐
- Python Data Analysis(Second Edition)
- 精通Python自動化編程
- Scratch3.0趣味編程動手玩:比賽訓練營
- 鴻蒙OS應用編程實戰
- ExtJS Web應用程序開發指南第2版
- Unity Character Animation with Mecanim
- 軟件體系結構
- Python數據可視化之美:專業圖表繪制指南(全彩)
- C++程序設計教程(第2版)
- Java語言程序設計實用教程(第2版)