Appearance
Rust 循环
循环是编程中常用的控制流结构,用于重复执行一段代码。本章节将详细介绍 Rust 中的循环结构。
loop 循环
loop 是 Rust 中最基本的循环结构,它会无限重复执行代码块,直到遇到 break 语句:
rust
fn main() {
let mut counter = 0;
loop {
counter += 1;
println!("Counter: {}", counter);
if counter >= 5 {
break;
}
}
}loop 循环返回值
loop 循环可以返回值,通过 break 语句指定返回值:
rust
fn main() {
let mut counter = 0;
let result = loop {
counter += 1;
if counter >= 5 {
break counter * 2;
}
};
println!("Result: {}", result);
}嵌套 loop 循环
可以在 loop 循环中嵌套其他循环:
rust
fn main() {
let mut outer_counter = 0;
loop {
outer_counter += 1;
println!("Outer counter: {}", outer_counter);
let mut inner_counter = 0;
loop {
inner_counter += 1;
println!("Inner counter: {}", inner_counter);
if inner_counter >= 3 {
break;
}
}
if outer_counter >= 2 {
break;
}
}
}while 循环
while 循环在条件为真时执行代码块:
rust
fn main() {
let mut counter = 0;
while counter < 5 {
println!("Counter: {}", counter);
counter += 1;
}
}while 循环的条件
while 循环的条件可以是任何返回布尔值的表达式:
rust
fn main() {
let mut number = 1;
while number <= 10 {
println!("Number: {}", number);
number *= 2;
}
}for 循环
for 循环用于遍历集合或范围:
遍历数组
rust
fn main() {
let numbers = [1, 2, 3, 4, 5];
for number in numbers {
println!("Number: {}", number);
}
}遍历范围
rust
fn main() {
// 左闭右开区间 [0, 5)
for i in 0..5 {
println!("i: {}", i);
}
// 左闭右闭区间 [0, 5]
for i in 0..=5 {
println!("i: {}", i);
}
}遍历迭代器
rust
fn main() {
// 反向遍历
for i in (0..5).rev() {
println!("i: {}", i);
}
// 步长遍历
for i in (0..10).step_by(2) {
println!("i: {}", i);
}
}遍历集合
rust
fn main() {
let fruits = vec!["apple", "banana", "cherry"];
for fruit in fruits {
println!("Fruit: {}", fruit);
}
// 遍历 HashMap
use std::collections::HashMap;
let mut scores = HashMap::new();
scores.insert("Alice", 100);
scores.insert("Bob", 85);
scores.insert("Charlie", 90);
for (name, score) in &scores {
println!("{}: {}", name, score);
}
}循环控制
break 语句
break 语句用于退出当前循环:
rust
fn main() {
for i in 0..10 {
if i == 5 {
break;
}
println!("i: {}", i);
}
}continue 语句
continue 语句用于跳过当前循环迭代,继续下一次迭代:
rust
fn main() {
for i in 0..10 {
if i % 2 == 0 {
continue;
}
println!("i: {}", i);
}
}循环标签
对于嵌套循环,可以使用标签来指定要 break 或 continue 的循环:
rust
fn main() {
'outer: loop {
println!("Outer loop");
'inner: loop {
println!("Inner loop");
break 'outer; // 直接退出外层循环
}
}
}循环的性能考虑
for循环是 Rust 中最常用的循环结构,它的性能通常是最好的while循环适用于条件复杂的情况loop循环适用于需要无限循环的情况
总结
- loop:无限循环,直到遇到 break
- while:条件为真时循环
- for:遍历集合或范围
- break:退出循环
- continue:跳过当前迭代
- 循环标签:用于嵌套循环的控制
通过本章节的学习,你应该已经掌握了 Rust 中的循环结构,可以在你的程序中使用这些结构来重复执行代码。