fn main() { let mut counter = 0; let result = loop { counter += 1; if counter == 10 { // loop {} is an expression and can return values, this is sick. break counter * 2; } }; println!("The result is {result}"); let mut count = 0; 'counting_up: loop { // Loop label 'counting_up println!("count = {count}"); let mut remaining = 10; loop { println!("remaining = {remaining}"); if remaining == 9 { break; } if count == 2 { break 'counting_up; // Break the outter loop } remaining -= 1; } count += 1; } println!("End count = {count}"); let mut number = 3; while number != 0 { println!("Number: {number}"); number -= 1; } println!("While is gone"); let a = [10, 20, 30, 40, 50]; let mut index = 0; while index < 5 { println!("{}", a[index]); index += 1; } // Using a for loop for element in a { println!("the value is: {element}"); } // Range - .rev == reverse for number in (1..4).rev() { println!("{number}"); } }