Bird
Raised Fist0
Rustprogramming~5 mins

Operator precedence in Rust

Choose your learning style10 modes available
Introduction
Operator precedence tells us which part of a math or logic expression to solve first, so the computer gets the right answer.
When you write math calculations with many operators like +, -, *, /.
When you combine conditions using && (and) and || (or) in if statements.
When you want to avoid mistakes in complex expressions by knowing what happens first.
When you use parentheses to change the order of operations.
When debugging why a calculation or condition gives an unexpected result.
Syntax
Rust
value1 operator1 value2 operator2 value3
Operators with higher precedence run before operators with lower precedence.
Use parentheses () to change the order and make it clear.
Examples
Multiplication (*) happens before addition (+), so 3*4=12 first, then 2+12=14.
Rust
let result = 2 + 3 * 4;
Parentheses () make addition happen first: 2+3=5, then 5*4=20.
Rust
let result = (2 + 3) * 4;
&& (and) has higher precedence than || (or), so false && false = false first, then true || false = true.
Rust
let is_true = true || false && false;
Sample Program
This program shows how Rust uses operator precedence: multiplication before addition, and && before ||.
Rust
fn main() {
    let a = 5 + 2 * 3;
    let b = (5 + 2) * 3;
    let c = true || false && false;
    println!("a = {}", a);
    println!("b = {}", b);
    println!("c = {}", c);
}
OutputSuccess
Important Notes
Remember: multiplication (*) and division (/) have higher precedence than addition (+) and subtraction (-).
Logical AND (&&) has higher precedence than logical OR (||).
Use parentheses to make your code easier to read and avoid mistakes.
Summary
Operator precedence decides which parts of an expression run first.
Multiplication and division come before addition and subtraction.
Use parentheses to control or clarify the order.

Practice

(1/5)
1. In Rust, which operator has the highest precedence among these: +, *, -, /?
easy
A. Multiplication (*) and division (/) have higher precedence than addition (+) and subtraction (-).
B. Addition (+) and subtraction (-) have higher precedence than multiplication (*) and division (/).
C. All operators have the same precedence and are evaluated left to right.
D. Subtraction (-) has the highest precedence among all.

Solution

  1. Step 1: Recall Rust operator precedence rules

    Multiplication (*) and division (/) operators have higher precedence than addition (+) and subtraction (-).
  2. Step 2: Compare given operators

    Among the given operators, * and / are evaluated before + and - in expressions.
  3. Final Answer:

    Multiplication (*) and division (/) have higher precedence than addition (+) and subtraction (-). -> Option A
  4. Quick Check:

    *, / > +, - [OK]
Hint: Remember: multiply/divide before add/subtract [OK]
Common Mistakes:
  • Thinking addition has higher precedence than multiplication
  • Assuming all operators have equal precedence
  • Confusing subtraction precedence with multiplication
2. Which of the following Rust expressions is correctly written to add 2 and 3, then multiply the result by 4?
easy
A. 2 + 3 * 4
B. (2 + 3) * 4
C. 2 + (3 * 4)
D. 2 * 3 + 4

Solution

  1. Step 1: Understand operator precedence and parentheses

    Multiplication (*) has higher precedence than addition (+), so without parentheses, multiplication happens first.
  2. Step 2: Check each expression

    (2 + 3) * 4 uses parentheses to add 2 and 3 first, then multiplies by 4, which matches the requirement.
  3. Final Answer:

    (2 + 3) * 4 -> Option B
  4. Quick Check:

    Parentheses force addition first [OK]
Hint: Use parentheses to change default order [OK]
Common Mistakes:
  • Ignoring parentheses and relying on default precedence
  • Misplacing parentheses causing wrong order
  • Assuming left-to-right always applies
3. What is the output of this Rust code?
let result = 10 - 4 / 2 + 3 * 2;
println!("{}", result);
medium
A. 13
B. 10
C. 11
D. 14

Solution

  1. Step 1: Apply operator precedence to expression

    Division and multiplication happen before addition and subtraction:
    4 / 2 = 2
    3 * 2 = 6
  2. Step 2: Calculate left to right with results

    Expression becomes: 10 - 2 + 6
    10 - 2 = 8
    8 + 6 = 14
  3. Final Answer:

    14 -> Option D
  4. Quick Check:

    */ before +- gives 14 [OK]
Hint: Calculate * and / first, then + and - left to right [OK]
Common Mistakes:
  • Doing operations strictly left to right ignoring precedence
  • Adding before multiplying
  • Miscomputing division or multiplication
4. Identify the error in this Rust expression:
let value = 5 + 3 * / 2;
medium
A. No error, expression is valid
B. Logical error: multiplication should be addition
C. Syntax error due to misplaced operator '/'
D. Runtime error due to division by zero

Solution

  1. Step 1: Analyze the expression syntax

    The expression has * / operators together without a number between them, which is invalid syntax in Rust.
  2. Step 2: Confirm error type

    This causes a syntax error because Rust expects an operand between operators.
  3. Final Answer:

    Syntax error due to misplaced operator '/' -> Option C
  4. Quick Check:

    Operators must have operands between them [OK]
Hint: Check for missing operands between operators [OK]
Common Mistakes:
  • Assuming expression is valid without checking syntax
  • Confusing syntax error with runtime error
  • Ignoring operator placement rules
5. Given the Rust expression:
let x = 2 + 3 * 4 - 6 / 3 + (8 - 5) * 2;

What is the correct value of x after evaluation?
hard
A. 18
B. 20
C. 19
D. 21

Solution

  1. Step 1: Evaluate parentheses and high precedence operators

    Calculate inside parentheses:
    (8 - 5) = 3
    Then multiplication and division:
    3 * 4 = 12
    6 / 3 = 2
    3 * 2 = 6 (from parentheses result * 2)
  2. Step 2: Substitute and calculate addition and subtraction left to right

    Expression becomes: 2 + 12 - 2 + 6
    2 + 12 = 14
    14 - 2 = 12
    12 + 6 = 18
  3. Final Answer:

    18 -> Option A
  4. Quick Check:

    Parentheses and */ first, then +- left to right [OK]
Hint: Calculate parentheses first, then * and /, then + and - left to right [OK]
Common Mistakes:
  • Ignoring parentheses and calculating in wrong order
  • Doing addition before multiplication
  • Mixing up left-to-right evaluation for + and -
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard