if expression

fn main() {
    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");
    }
}

Blocks of code associated with the conditions in if expressions are sometimes called arms, just like the arms in match.

if can be used in a let statement:

let condition = true;
let number = if condition { 5 } else { 6 };

Loops

for loop

let a = [10, 20, 30, 40, 50];
for element in a {
	println!("the value is: {element}");
}

loop keyword

// infinite loop
loop {
	println!("again!");
}
 
// break out of loop
let mut counter = 0;
let result = loop {
	counter += 1;
	if counter == 10 {
		break counter * 2;
	}
};
 
// labeled loops
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

while number != 0 {
	println!("{number}!");
	number -= 1;
}