Bird
Raised Fist0
Rustprogramming~10 mins

If expression in Rust - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - If expression
Evaluate condition
↓
Condition true?
No→Execute else block
↓
Result from else
↓
Execute if block
↓
Result from if
↓
Use result
The if expression evaluates a condition. If true, it runs the if block and returns its value; otherwise, it runs the else block and returns that value.
Execution Sample
Rust
let x = 5;
let y = if x > 3 { 10 } else { 20 };
println!("y = {}", y);
This code sets y to 10 if x is greater than 3, otherwise 20, then prints y.
Execution Table
StepCondition (x > 3)Branch TakenValue from BranchVariable y
15 > 3True (if block)1010
2End of if expression--10
3Print y--Outputs: y = 10
💡 Condition is true, so if block runs and y is set to 10.
Variable Tracker
VariableStartAfter if expressionFinal
x555
yuninitialized1010
Key Moments - 2 Insights
Why does the if expression return a value?
In Rust, if is an expression, not just a statement. It returns the value from the executed branch, as shown in the execution_table step 1 where y gets the value 10.
What happens if the else block is missing?
If else is missing and the condition is false, Rust will give a compile error because the if expression must return a value in all cases. This is why the else branch is needed to cover the false case.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what value does y have after the if expression?
A5
B10
C20
Duninitialized
💡 Hint
Check the 'Variable y' column in the first row of the execution_table.
At which step does the program decide which branch to take?
AStep 3
BStep 2
CStep 1
DBefore Step 1
💡 Hint
Look at the 'Condition (x > 3)' and 'Branch Taken' columns in the execution_table.
If x was 2 instead of 5, what would y be after the if expression?
A20
B10
C2
Duninitialized
💡 Hint
If condition is false, else branch value is used, see execution_table logic.
Concept Snapshot
if expression syntax:
if condition { expr1 } else { expr2 }

Evaluates condition:
- if true, returns expr1
- else, returns expr2

Must cover all cases (else required)
Returns a value usable in assignments.
Full Transcript
This visual execution shows how Rust's if expression works. First, the condition x > 3 is checked. Since x is 5, the condition is true, so the if block runs and returns 10. This value is assigned to y. The else block is skipped. Finally, y is printed as 10. The key point is that if is an expression returning a value, not just a statement. The else block is necessary to cover the false case and ensure the expression always returns a value.

Practice

(1/5)
1. What does an if expression do in Rust?
easy
A. It chooses between code blocks based on a condition.
B. It repeats code multiple times.
C. It defines a new function.
D. It declares a variable.

Solution

  1. Step 1: Understand the purpose of if

    The if expression checks a condition to decide which code block to run.
  2. Step 2: Compare with other options

    Repeating code is done by loops, functions define behavior, and variables store data, so these are incorrect.
  3. Final Answer:

    It chooses between code blocks based on a condition. -> Option A
  4. Quick Check:

    If expression = choose code [OK]
Hint: If checks true/false to pick code [OK]
Common Mistakes:
  • Confusing if with loops
  • Thinking if declares variables
  • Mixing if with function definitions
2. Which of the following is the correct syntax for an if expression in Rust?
easy
A. if condition: { /* code */ } else: { /* code */ }
B. if condition { /* code */ } else { /* code */ }
C. if (condition) then { /* code */ } else { /* code */ }
D. if condition -> { /* code */ } else -> { /* code */ }

Solution

  1. Step 1: Recall Rust if syntax

    Rust uses if condition { ... } else { ... } without parentheses or arrows.
  2. Step 2: Check each option

    if condition { /* code */ } else { /* code */ } matches Rust syntax; others use invalid keywords or symbols.
  3. Final Answer:

    if condition { /* code */ } else { /* code */ } -> Option B
  4. Quick Check:

    Rust if syntax = braces, no parentheses [OK]
Hint: Rust if uses braces, no parentheses [OK]
Common Mistakes:
  • Adding parentheses like other languages
  • Using 'then' keyword
  • Using colons or arrows incorrectly
3. What is the output of this Rust code?
let x = 10;
let y = if x > 5 { "big" } else { "small" };
println!("{}", y);
medium
A. Compilation error
B. small
C. big
D. 10

Solution

  1. Step 1: Evaluate the condition x > 5

    Since x is 10, which is greater than 5, the condition is true.
  2. Step 2: Determine which branch runs

    The if expression returns "big" because the condition is true, so y is assigned "big".
  3. Final Answer:

    big -> Option C
  4. Quick Check:

    10 > 5 is true, so output = big [OK]
Hint: Check condition true or false to pick output [OK]
Common Mistakes:
  • Confusing output with variable x
  • Thinking else branch runs
  • Expecting numeric output
4. Identify the error in this Rust code snippet:
let number = 7;
let result = if number % 2 == 0 {
    "even"
} else {
    "odd"
};
println!("{}", result);
medium
A. No error, code runs correctly
B. Mismatched types in if and else branches
C. Missing semicolon after if expression
D. Using % operator incorrectly

Solution

  1. Step 1: Check syntax and types

    The if expression returns string slices "even" or "odd", both same type, so no type mismatch.
  2. Step 2: Verify semicolons and operators

    The semicolon after the if expression is present, and the modulo operator is used correctly.
  3. Final Answer:

    No error, code runs correctly -> Option A
  4. Quick Check:

    Correct syntax and types = no error [OK]
Hint: Check types and semicolons carefully [OK]
Common Mistakes:
  • Thinking semicolon is missing
  • Confusing types in branches
  • Misusing modulo operator
5. How can you use an if expression to assign a value to a variable based on multiple conditions in Rust? Choose the correct code snippet.
hard
A. let grade = if score >= 90 -> 'A' else if score >= 80 -> 'B' else -> 'C';
B. let grade = if (score >= 90) then 'A' else if (score >= 80) then 'B' else 'C';
C. let grade = if score >= 90: 'A' elif score >= 80: 'B' else: 'C';
D. let grade = if score >= 90 { 'A' } else if score >= 80 { 'B' } else { 'C' };

Solution

  1. Step 1: Understand Rust's if-else if syntax

    Rust uses if condition { value } and else if condition { value } blocks with braces, no keywords like then or arrows.
  2. Step 2: Check each option for syntax correctness

    let grade = if score >= 90 { 'A' } else if score >= 80 { 'B' } else { 'C' }; uses correct Rust syntax; others use invalid keywords or punctuation.
  3. Final Answer:

    let grade = if score >= 90 { 'A' } else if score >= 80 { 'B' } else { 'C' }; -> Option D
  4. Quick Check:

    Rust if-else if uses braces, no then [OK]
Hint: Use braces and else if without extra keywords [OK]
Common Mistakes:
  • Adding 'then' keyword
  • Using colons or arrows
  • Incorrect else if syntax
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