跳到主要内容

Rust while 循环

提示
  1. 基本使用:在 Rust 中,while 循环用于在给定条件为 true 时反复执行代码块。
  2. 循环控制while 循环持续执行直到其条件变为 false。循环内部可以修改计数器或状态变量来控制何时退出循环。
  3. 嵌套和无限循环while 循环可以嵌套在其他 while 循环内,形成嵌套循环。使用始终为 true 的条件可以创建无限循环,但需谨慎使用以避免程序卡死。

我们使用 while 循环在条件为 true 时执行代码块。while 表达式的语法为:

while condition {
// 代码块
}

// while 循环外的代码块

在这里,while 循环在继续执行之前会评估条件

如果条件评估为:

  • true - while 循环内的代码块将被执行,并再次评估条件

  • false - 循环终止,并执行 while 循环外的代码块

示例:Rust 中的 while 循环

fn main() {
let mut counter = 1;

// while 循环的使用
while counter < 6 {
println!("{}", counter);

counter += 1;
}
}

输出

1
2
3
4
5

在上面的例子中,我们有一个条件

while counter < 6 {
// 代码块
}

在这里,只要 counter 变量小于 6,循环就会持续运行。在循环内部,我们将 counter 的值增加 1

第五次迭代后,counter 的值将为 6,所以条件counter < 6 变为 false,循环终止。

注意while 表达式通常与帮助在满足特定条件后退出循环的计数器变量一起使用。

Rust 中 while 表达式的工作原理

Rust 中 while 表达式的工作原理

无限 while 循环

您可以使用 while 表达式编写一个永不结束的循环。让我们看一个例子,

fn main() {
let counter = 1;

// while 循环的条件总是评估为 true
while counter < 6 {
println!("永远循环!");
}
}

输出

永远循环!
永远循环!
永远循环!
.
.
.

这个示例代码将无限期地打印“永远循环!”,因为条件counter < 6 总是评估为 true。这是因为我们在循环内部从未增加 counter 变量的值。因此,这个程序将一直运行,直到用户终止程序。

注意: 您可以使用 break 关键字在 Rust 中终止任何类型的循环。

示例:使用 while 循环打印乘法表

fn main() {
// 打印乘法表的变量
let i = 2;

// 从 1 开始的计数器变量
let mut j = 1;

// 循环运行 10 次的 while 循环
while j <= 10 {
// 乘以 i 和 j
let mult = i * j;

// 每次迭代打印乘法结果
println!("{} * {} = {}", i, j, mult);

// 增加计数器变量 j 的值
j += 1;
}
}

输出

2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
2 * 10 = 20

嵌套 while 循环

我们可以在另一个 while 循环的主体内使用 while 循环。这被称为嵌套 while 循环。嵌套 while 循环的样子如下:

while 外部条件 {
// 外部代码块 1

while 内部条件 {
// 内部代码块
}

// 外部代码块 2
}

让我们使用嵌套 while 循环打印一个图案,

fn main() {
// 外部循环计数器
let mut i = 1;

// 外部循环
while i <= 5 {
// 内部循环计数器
let mut j = 1;

// 内部循环
while j <= 5 {
print!("*");

// 增加内部循环计数器
j += 1;
}

println!("");

// 增加外部循环计数器
i += 1;
}
}

输出

*****
*****
*****
*****
*****

在上述示例中,

  • 外部 while 循环迭代了 5
  • 外部 while 循环内的内部 while 循环也迭代了 5
  • 内部 while 循环在每次迭代时打印一个星号(*)→ print!(*)
  • 当计数器变量 j 达到 6 时,内部 while 循环停止,因为内部条件评估为 false
  • 外部 while 循环在每次迭代后打印一个新行 → println!(""),然后进入下一次迭代,这将再次启动内部 while 循环
  • 当计数器变量 i 达到 6 时,外部 while 循环停止,因为外部条件评估为 false