Rust 基本 while 循环

标签 rust

(希望如此)来自一个完整的 Rust 初学者的一个简单问题。我的循环有什么问题?

num 计算结果为“69”的速度相当快,但是一旦 num 设置为“69”,循环就永远不会退出。我肯定遗漏了一些明显的东西......

extern crate rand;

use rand::Rng;

fn main() {
    let funny_number: u16 = 69;
    let mut num: u16 = 0;
    let mut rng = rand::thread_rng();

    while num != funny_number {
        let mut num: u16 = rng.gen_range(0, 100);
        println!("{}", num);
    }
}

最佳答案

问题是您在 while 循环中创建了一个新变量,它具有不同的作用域,而 while 条件中的 num 永远不会改变。由于它进入无限循环。试试下面的代码:

extern crate rand;

use rand::Rng;

fn main() {
    let funny_number: u16 = 69;
    let mut num: u16 = 0;
    let mut rng = rand::thread_rng();

    while num != funny_number {
        num = rng.gen_range(0, 100);
        println!("{}", num);
    }
}

关于Rust 基本 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59200001/

相关文章:

algorithm - 广度优先搜索和生命周期

rust - 为什么这个 Rust 程序忽略不变性

rust - 如果返回类型是通用的,我可以返回 &str 输入的切片吗?

pointers - 如何强制 Rust 获得非安全方法分配的内存的所有权?

rust - Rust 标准库中类型的 trait 实现的范围是什么?

c++ - 除了使用设计选择之外,是否不允许访问类型不同的数组元素?

rust - `fold` 方法无法在特征对象上调用

mysql - 使用 Diesel 的声明式架构定义

rust - 对缓冲区使用 Snappy 压缩

shell - 如何在 Rust 中通过标准输入向程序发送输入