Lesson 4: Control Flow in Rust
Introduction
Control flow allows your program to make decisions and repeat actions. In Rust, you use familiar constructs like if, else if, else, and looping with loop, while, and for. This makes your code dynamic and powerful.
Conditional Statements (if, else if, else)
Rust’s if statement works much like other languages but with an emphasis on type safety—conditions must always be boolean.
fn main() {
let number = 7;
if number < 10 {
println!("Small number!");
} else if number < 100 {
println!("Medium-sized number!");
} else {
println!("Big number!");
}
}- The code block after the first
ifruns ifnumber < 10. - If that’s false but
number < 100is true, theelse ifblock runs. - Otherwise, the
elseblock is executed.
Using if as an Expression
Rust allows if expressions to assign values:
fn main() {
let is_even = if number % 2 == 0 { true } else { false };
println!("Is even? {}", is_even);
}Looping with loop, while, and for
1. The Infinite loop
A loop runs forever unless you explicitly break out of it.
fn main() {
let mut count = 0;
loop {
println!("Count: {}", count);
count += 1;
if count >= 5 {
break; // exit the loop
}
}
}2. Conditional Looping with while
while keeps looping as long as its condition is true.
fn main() {
let mut n = 3;
while n > 0 {
println!("{}!", n);
n -= 1;
}
println!("Liftoff!");
}3. Iterating with for
for loops are best for iterating over ranges or collections.
fn main() {
for i in 1..=5 {
println!("Number: {}", i);
}
}1..=5means from 1 to 5, inclusive.
Interactive Task 1: FizzBuzz Mini-Exercise
Try this classic coding challenge:
- Print numbers from 1 to 15.
- For multiples of 3, print
Fizzinstead of the number. - For multiples of 5, print
Buzz. - For numbers divisible by both, print
FizzBuzz.
fn main() {
// Your FizzBuzz code here!
}Tip: Use a for loop with if-else statements inside.
Solution: https://gist.github.com/rust-play/c4a104c212dc94ef5f885d96513e9ea3
Mini-Challenge
Write a program that counts down from 10 to 1 using a while loop and prints “Blast off!” at the end.
Solution: https://gist.github.com/rust-play/c92404da3c456fdd3761f0287f85928f
Recap
- Use
if,else if, andelsefor decisions. - Use
loopfor infinite or manual-exit repetition,whilefor condition-based repetition, andforfor range or collection iteration. - Rust’s control flow features are type-safe and expressive.
Did you complete the tasks? Share your FizzBuzz or countdown code in the comments! Have questions about if or loops? Let’s discuss!
Go to Course Structure or Navigate to next blog!