参考:https://doc.rust-lang.org/stable/rust-by-example/flow_control/loop.html
使用 loop
关键字来定义一个无限循环。
在 loop
循环中,可以使用 break
跳出循环,使用 continue
继续下次循环。
fn main() { let mut count = 0u32; println!("Let's count until infinity!"); loop { count += 1; if count == 3 { println!("three"); // 跳过循环 continue; } println!("{}", count); if count == 5 { println!("OK, that's enough"); // 退出循环 break; } } }
如果有多层嵌套循环需要跳过或者退出,可以使用标签。
fn main() { 'outer: loop { println!("Entered the outer loop"); 'inner: loop { println!("Entered the inner loop"); // 可以直接跳出外层循环 break 'outer; } println!("This point will never be reached"); } println!("Exited the outer loop"); }
若要在循环中返回一个值,可以放在 break
后面。
fn main() { let mut counter = 0; let result = loop { counter += 1; if counter == 10 { // 直接在这里返回值 break counter * 2; } }; assert_eq!(result, 20); }
了解了 Rust 中的 loop 循环,可以使用多层循环,也可以在循环中返回值。