Control flow

If ... Else

Branch code based on conditions.

If else for functions

fn main() {
    let age: u16 = 15;
    if age >= 16 {
        println!("You can drive a car!");
    } else {
        println!("You can't drive a car!");
    }
}
    // multiple conditions with else if
    // % calculates the remainder of an operation
    let number = 6;
    if number % 4 == 0 {
        println!("number is divisible by 4!");
    } else if number % 3 == 0 {
        println!("number is divisible by 3!");
    } else if number % 2 == 0 {
        println!("number is divisible by 2!");
    } else {
        println!("number is not divisible by 4, 3, or 2!");
    }

If else for declarations

If and else will need to evaluate to the same type.

    let condition = true;
    let number = if condition {5} else {6};
    println!("Number: {number}");
    
    // Number: 5
    
    /* let number = if condition {5} else {"six"};
    Will not compile. */

&

Loops

loop {
code
if ... {break ...}
}

Example

    let mut counter = 0;

    let result = loop {
        counter += 1;
        if counter == 10 {
            break counter * 2;
        }
    };
    println!{"{result}"};
    //Result prints as 20 because that is what follows break (counter * 2)

Nested loop example

       let mut count = 0;
        'counting_up: loop {
            println!("count = {count}");
            let mut remaining = 10;
            loop {
                println!("remaining = {remaining}");
                if remaining == 9 {
                    break;
                }
                if count == 2 {
                    break 'counting_up;
                }
                remaining -= 1;
            }
            count += 1;
        }
        println!("End count = {count}");

While loop example

        let mut number = 3;
        while number !0 = {
            println!("{number}");
            number -= 1;
        }
        println!("HEY!!!");

Example array

    let a = [1,2,3,4,5,6];
    for element in a {
    println!("{element}");
    }