DEV Community

Cover image for Rust🦀 takes decisions through control flow, so I learned it.
Abinash Sahoo
Abinash Sahoo

Posted on

Rust🦀 takes decisions through control flow, so I learned it.

Control flow is essentially how a program decides what to do next.

It’s like the brain of our code, making decisions and repeating actions based on certain conditions.

In Rust, control flow is crucial for writing efficient and effective programs. 🧠

Learning control flow in Rust was a blast!

If you are wondering, which resources I am following, you can check it out here. (Do not forget to give it a ⭐)

It felt like I was giving my code a brain and teaching it to make decisions. There were moments of confusion, especially when I first encountered the match expression, but once I got it, I loved it.

Match expression saved me lots of lines, I need to write if I use the if statements.

Quick Tour of Control Flow in Rust

Sure! Let's think of control flow in a program as a journey through a city. 🚗🏙️

The City Map Analogy 🗺️

Imagine you're driving through a city. The roads, traffic lights, and signs guide you on your journey. Similarly, control flow in a program guides the execution of code.

If Expressions: Traffic Lights 🚦

Traffic lights are like if expressions. They control whether you stop or go based on certain conditions:



let light = "green";

if light == "green" {
    println!("Go!");
} else if light == "yellow" {
    println!("Slow down!");
} else {
    println!("Stop!");
}


Enter fullscreen mode Exit fullscreen mode

Just like a traffic light, the if expression checks the condition (light colour) and decides what action to take (print a message).

Loops: Roundabouts 🔄

Loops are like roundabouts. They allow you to keep going around until you find the right exit:

Loop: Infinite Roundabout

An infinite roundabout where you keep going until you decide to exit:



loop {
    println!("Going around the roundabout!");
    // Exit condition needed to break the loop
}


Enter fullscreen mode Exit fullscreen mode

While Loop: Conditional Roundabout

A roundabout where you keep going until a condition is met:



let mut laps = 3;

while laps > 0 {
    println!("Another lap!");
    laps -= 1;
}


Enter fullscreen mode Exit fullscreen mode

You keep driving around until you've completed the specified number of laps.

For Loop: Scheduled Stops

A for loop is like a bus route with scheduled stops:



for stop in 1..4 {
    println!("Stopping at stop number {}", stop);
}


Enter fullscreen mode Exit fullscreen mode

The bus stops at each scheduled stop (1 to 3) and then continues its journey.

Match Expressions: GPS Navigation 🎯

A match expression is like a GPS system that gives you directions based on your location:



let destination = "home";

match destination {
    "home" => println!("Take the next right."),
    "work" => println!("Take the next left."),
    "store" => println!("Go straight ahead."),
    _ => println!("Recalculating route..."),
}


Enter fullscreen mode Exit fullscreen mode

The GPS checks your destination and provides the appropriate directions. The _ acts as a fallback for any unknown destinations.

Break and Continue: Roadblocks and Detours ⛔

Sometimes, you encounter roadblocks or need to take a detour:

Break: Roadblock

A roadblock that forces you to stop and find another route:



for street in 1..6 {
    if street == 5 {
        break; // Roadblock at street 5
    }
    println!("Driving on street {}", street);
}


Enter fullscreen mode Exit fullscreen mode

You stop driving when you hit the roadblock at Street 5.

Continue: Detour

A detour that makes you skip a certain street:



for street in 1..6 {
    if street == 3 {
        continue; // Detour at street 3
    }
    println!("Driving on street {}", street);
}


Enter fullscreen mode Exit fullscreen mode

You skip Street 3 and continue driving on the other streets.

Control flow in programming is like navigating through a city.

Traffic lights (if expressions), roundabouts (loops), GPS navigation (match expressions), and roadblocks/detours (break and continue) all guide your journey.

Understanding these concepts helps you write efficient and effective code, just like knowing the city layout helps you reach your destination smoothly. 🚗💨

I hope this analogy makes control flow easier to understand!

Conclusion 🎉

Completing the control flow sections in Rust was a rewarding experience.

It gave me the tools to write more complex and efficient programs.

Thanks for sticking around and reading about my journey.

If you have any questions or want to share your Rust adventures, let’s chat in the comment box! 🌟

If you are wondering, which resources I am following, you can check it out here. (Do not forget to give it a ⭐)

Have a great day.

Happy Rust Journey!🦀

Top comments (0)