在编程中,循环用于多次执行一个代码块。例如,要打印一个数字 100 次,我们会使用循环而不是重复编写打印语句。
在 Rust 中,您可以使用三个不同的关键字来多次执行一个代码块
- loop
- while
- for
Loop 表达式
在 Rust 中,我们使用 loop 表达式来无限期地执行代码块。如果我们使用 loop,循环代码块内的代码执行不会停止,会永远运行下去。
loop 表达式的语法是
loop {
// code to execute
}
让我们看一个例子。
fn main() {
// loop expression
loop {
println!("Loop forever!");
}
}
输出
Loop forever! Loop forever! Loop forever! . . .
此示例代码将无限期地打印 “Loop forever!”,除非用户终止程序。由于循环永远运行,它也被称为无限循环。
终止 Rust 循环
我们使用 break 关键字来终止 loop。例如,
fn main() {
// initiate an infinite loop
loop {
println!("Loop forever!");
// stop infinite loop
break;
}
}
输出
Loop forever!
这里,break 关键字终止了循环。这就是为什么 println! 宏只执行一次。
注意:在 Rust 中,我们经常一起使用 loop 和 break。
示例:使用循环打印前 10 个自然数
fn main() {
let mut number = 0;
// infinite loop starts here
loop {
number += 1;
println!("{}", number);
if number >= 10 {
// exit the loop
break;
}
}
}
输出
1 2 3 4 5 6 7 8 9 10
在上面的示例中,我们使用了 loop 表达式来打印自然数。这里,number 变量的初始值为 0。
循环的工作原理
下表显示了 loop 在每次迭代中的工作情况。
| number | 循环内部 | number >= 10 |
|---|---|---|
| 0 | number 增加到 11 被打印 |
false |
| 1 | number 增加到 22 被打印 |
false |
| 2 | number 增加到 33 被打印 |
false |
| 3 | number 增加到 44 被打印 |
false |
| 4 | number 增加到 55 被打印 |
false |
| 5 | number 增加到 66 被打印 |
false |
| 6 | number 增加到 77 被打印 |
false |
| 7 | number 增加到 88 被打印 |
false |
| 8 | number 增加到 99 被打印 |
false |
| 9 | number 增加到 1010 被打印 |
true (循环终止) |
因此,我们在屏幕上看到打印出数字 1 到 10。
Rust 中 loop 和 break 的工作原理
要了解更多关于 break 关键字的信息,请访问 Rust break 和 continue。