在 Rust 中,循环语句用于重复执行一段代码,直到满足特定条件。Rust 提供了几种类型的循环结构来满足不同的需求,包括 loop
、while
和 for
循环。
loop 循环
loop
是一个无限循环关键字,它会一直执行循环体中的代码,直到使用 break
或 return
语句终止循环。loop
循环常用于需要持续运行直到满足特定条件的场景。
示例:简单的无限循环
fn main() { loop { println!("Hello, World!"); } }
上面的代码将不断打印 "Hello, World!",直到程序被强制停止。为了防止这种情况,我们可以使用 break
来跳出循环:
-- -------------------- ---- ------- -- ------ - --- --- ----- - -- ---- - ----- -- -- -- ----- -- - - ------ -- ----------- - ---------------- ---- ------- - -
在上面的例子中,循环会在 count
达到 3 时停止,并输出三次 "Count: x"。
while 循环
while
循环允许根据条件来决定是否执行循环体中的代码。循环体内的代码块会反复执行,直到指定的布尔表达式变为 false
。
示例:基于条件的循环
-- -------------------- ---- ------- -- ------ - --- --- ------ - -- ----- ------ -- - - -------------- -------- ------ -- -- - ----------------------- -
在这个例子中,当 number
不等于 0 时,循环会继续执行。每次迭代都会递减 number
的值,直到它变为 0。
for 循环
for
循环是另一种常用的循环结构,主要用于遍历集合中的元素。它可以简化对容器或迭代器的遍历操作,提供了一种更简洁的方式来处理数据。
示例:遍历数组
fn main() { let a = [10, 20, 30, 40, 50]; for element in a.iter() { println!("the value is: {}", element); } }
在这个例子中,我们使用 for
循环遍历了数组 a
中的所有元素。iter()
方法返回一个迭代器,它会逐个返回数组中的每个元素。
示例:使用范围进行循环
fn main() { for number in (1..4).rev() { println!("{}!", number); } println!("LIFTOFF!!!"); }
这段代码首先创建了一个从 1 到 3(不包括 4)的范围,然后使用 .rev()
方法反转该范围,使得循环从 3 开始倒序执行。这会产生 "3!"、"2!"、"1!" 的输出,最后输出 "LIFTOFF!!!"。
循环控制语句
除了前面提到的 break
之外,Rust 还支持 continue
关键字,用于跳过当前循环体的剩余部分并开始下一次迭代。
示例:使用 continue 跳过某些迭代
fn main() { for i in 0..10 { if i % 2 == 0 { continue; // 跳过偶数 } println!("{}", i); } }
在这段代码中,当 i
是偶数时,continue
语句将被触发,从而跳过本次循环的剩余部分。因此,只有奇数会被打印出来。
以上就是 Rust 中循环语句的基本用法和示例。熟练掌握这些概念对于编写高效的 Rust 程序至关重要。