Bird
Raised Fist0
Rustprogramming~20 mins

If expression in Rust - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
๐ŸŽ–๏ธ
Rust If Expression Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
โ“ Predict Output
intermediate
2:00remaining
What is the output of this Rust code using an if expression?

Consider this Rust code snippet. What will it print?

Rust
fn main() {
    let x = 7;
    let y = if x > 5 { "big" } else { "small" };
    println!("{}", y);
}
Abig
Bsmall
Ctrue
D7
Attempts:
2 left
๐Ÿ’ก Hint

Remember, the if expression returns a value based on the condition.

๐Ÿง  Conceptual
intermediate
1:30remaining
What type must both branches of an if expression have in Rust?

In Rust, when using an if expression to assign a value, what must be true about the types of the values in the if and else branches?

AThey must be the same type.
BThey can be any types, Rust will convert automatically.
CThey must both be integers.
DThey must both be strings.
Attempts:
2 left
๐Ÿ’ก Hint

Think about how Rust enforces type safety.

โ“ Predict Output
advanced
2:00remaining
What does this Rust code print?

Analyze the following Rust code and select the output it produces.

Rust
fn main() {
    let a = 10;
    let b = 20;
    let max = if a > b { a } else { b };
    println!("{}", max);
}
A10
B20
Ca
Db
Attempts:
2 left
๐Ÿ’ก Hint

The if expression chooses the bigger number.

๐Ÿ”ง Debug
advanced
2:00remaining
What error does this Rust code produce?

Look at this Rust code snippet. What error will the compiler show?

Rust
fn main() {
    let x = 5;
    let y = if x > 3 { 10 } else { "small" };
    println!("{}", y);
}
Ano error, prints 10
Bunused variable warning
Cmismatched types error
Dmissing semicolon error
Attempts:
2 left
๐Ÿ’ก Hint

Check the types returned by each branch of the if expression.

๐Ÿš€ Application
expert
2:30remaining
How many items does this Rust vector contain after running?

Consider this Rust code using an if expression inside a vector initialization. How many elements does the vector v have?

Rust
fn main() {
    let condition = true;
    let v = vec![1, 2, if condition { 3 } else { 4 }];
    println!("{}", v.len());
}
A2
B4
C1
D3
Attempts:
2 left
๐Ÿ’ก Hint

Count all elements added to the vector.

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