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; }