Bird
Raised Fist0
Rustprogramming~5 mins

If expression in Rust

Choose your learning style10 modes available
Introduction

An if expression lets your program choose what to do based on a condition. It helps your code make decisions like a fork in the road.

When you want to check if a number is positive or negative and act differently.
When you want to decide what message to show based on user input.
When you want to run some code only if a certain condition is true.
When you want to assign a value based on a condition.
When you want to handle different cases without repeating code.
Syntax
Rust
if condition {
    // code if condition is true
} else {
    // code if condition is false
}

The condition must be a boolean (true or false).

In Rust, if is an expression, so it returns a value.

Examples
Runs the code only if x is greater than zero.
Rust
if x > 0 {
    println!("x is positive");
}
Checks if x is even or odd and prints a message.
Rust
if x % 2 == 0 {
    println!("x is even");
} else {
    println!("x is odd");
}
Uses if as an expression to assign a value to sign.
Rust
let sign = if x < 0 { "negative" } else { "non-negative" };
Sample Program

This program checks if x is positive, negative, or zero and prints a message. Then it uses an if expression to find if x is even or odd and prints that.

Rust
fn main() {
    let x = 7;
    if x > 0 {
        println!("{} is positive", x);
    } else if x < 0 {
        println!("{} is negative", x);
    } else {
        println!("{} is zero", x);
    }

    let description = if x % 2 == 0 { "even" } else { "odd" };
    println!("{} is {}", x, description);
}
OutputSuccess
Important Notes

Remember, the condition must always be a boolean; Rust does not allow numbers or other types as conditions.

You can chain multiple else if blocks to check many conditions.

Because if is an expression, you can assign its result directly to a variable.

Summary

If expressions let your program choose what to do based on true or false conditions.

You can use if with else and else if to handle multiple cases.

In Rust, if returns a value, so you can assign it to variables.

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