Keyword while

source ·
Expand description

保持条件时循环播放。

while 表达式用于谓词循环。 while 表达式在运行循环主体之前先运行条件表达式,然后在条件表达式的计算结果为 true 时运行循环主体,否则退出循环。

let mut counter = 0;

while counter < 10 {
    println!("{counter}");
    counter += 1;
}
Run

for 表达式一样,我们可以使用 breakcontinuewhile 表达式不能用值中断,并且总是与 loop 不同而求值为 ()

let mut i = 1;

while i < 100 {
    i *= 2;
    if i == 64 {
        break; // `i` 为 64 时退出。
    }
}
Run

由于 if 表达式在 if let 中具有其模式匹配的变体,因此 while 表达式与 while let 也是如此。 while let 表达式将模式与该表达式进行匹配,如果模式匹配成功,则运行循环主体,否则退出循环。 就像在 while 中一样,我们可以在 while let 表达式中使用 breakcontinue

let mut counter = Some(0);

while let Some(i) = counter {
    if i == 10 {
        counter = None;
    } else {
        println!("{i}");
        counter = Some (i + 1);
    }
}
Run

有关 while 和常规循环的更多信息,请参见 reference

另请参见 forloop