Fus*_*ion 4 infinite-loop rust
Rust contains loop,专为无限循环而设计:
使用关键字
loop,Rust提供了一种无限循环的方法,直到达到一些终止语句(如程序退出)
当我希望我的循环永远运行时,我无法想到一个场景.有无限循环可能有用的情况吗?
Fra*_*gné 10
loop通常用于循环,我们想要在循环体的中间打破.也就是说,您希望在测试任何条件之前执行某些操作,然后在满足某些条件时退出循环,然后执行其他必须仅在测试条件后执行的操作,然后重复.在其他语言中,这通常表示为while (true)或for (;;).这种情况很常见,Rust决定通过保留一个关键字来声明没有条件的循环来接受这种模式.
另外,Rust没有等效的C do..while循环,它在迭代结束时测试条件,但在第一次迭代之前不测试.在Rust中,你可以在循环结束时使用a loop和if condition { break }语句来模拟它.do..while在实践中,循环是相对罕见的,比我经验中的"中间突破"循环更为罕见.
我经常loop在我期望用户输入不断的程序中使用,例如在命令行游戏中:
fn play() {
let mut game = Game::new();
loop { game.turn() }
}
Run Code Online (Sandbox Code Playgroud)
由于可能的输入错误,它也很有用 - 在每个回合中它们可以打印到玩家,并且只要玩家想要游戏就可以继续游戏,直到胜利,失败或辞职为止break.