📜  rust while 循环 - Rust (1)

📅  最后修改于: 2023-12-03 15:34:46.672000             🧑  作者: Mango

Rust while 循环

在 Rust 中,while 循环用于重复执行一段代码直到条件为假为止。它的语法与其他语言类似,如下所示:

while condition {
    // code to be executed
}

其中 condition 是一个布尔表达式,将在每次循环开始时进行评估。如果它的值为 true,则执行循环体中的代码;如果它的值为 false,则跳过循环体并退出循环。

以下是一个简单的示例,它使用 while 循环来计算一个数字的阶乘:

fn main() {
    let mut n = 5;
    let mut result = 1;

    while n > 0 {
        result *= n;
        n -= 1;
    }

    println!("5! = {}", result);
}

在这个例子中,我们初始化了一个 n 变量,它的值为 5。我们还初始化了一个 result 变量,它的值为 1。然后我们使用 while 循环来重复执行以下操作:

  1. n 乘以 result,并将结果存储在 result 变量中。
  2. n 减 1。

我们在循环体中使用 mut 关键字来标记 nresult 变量,这是因为我们需要在循环中修改它们的值。如果我们没有使用 mut,我们将无法编译此代码。

n 的值减少到 0 时,while 循环条件将不再为真,循环将退出。然后我们打印 result 变量的值,这将是 5! 的结果。

Rust while 循环示例

以下示例演示了 while 循环的不同用例:

fn main() {
    // Counting up from 0
    let mut i = 0;

    while i < 5 {
        println!("i = {}", i);
        i += 1;
    }

    // Counting down from 5
    let mut j = 5;

    while j > 0 {
        println!("j = {}", j);
        j -= 1;
    }

    // Iterating over a collection
    let numbers = [1, 2, 3, 4, 5];

    let mut index = 0;

    while index < numbers.len() {
        println!("numbers[{}] = {}", index, numbers[index]);
        index += 1;
    }

    // Reading input until a specific value is entered
    let mut input = String::new();

    while input.trim() != "quit" {
        println!("Please enter a word (or quit to exit):");
        std::io::stdin().read_line(&mut input).unwrap();
        println!("You entered: {}", input.trim());
    }
}

在第一个示例中,我们使用 while 循环从 0 开始计数,直到计数器等于 5。在循环体中,我们打印 i 的值,然后增加 i。当 i 的值等于 5 时,while 循环条件将不再为真,循环将退出。

在第二个示例中,我们使用 while 循环从 5 开始倒数,直到计数器等于 0。在循环体中,我们打印 j 的值,然后减少 j。当 j 的值等于 0 时,while 循环条件将不再为真,循环将退出。

在第三个示例中,我们使用 while 循环来遍历一个包含 5 个元素的数组。我们初始化了一个 numbers 数组,然后初始化了一个 index 变量,它将用于迭代数组的每个元素。在循环体中,我们打印数组元素的值,然后增加 index。当 index 的值等于数组长度时,while 循环条件将不再为真,循环将退出。

在最后一个示例中,我们使用 while 循环从标准输入读取用户输入,直到用户输入单词 "quit"。在循环体中,我们打印提示消息,然后使用 std::io::stdin() 方法读取输入并打印出来。然后我们使用 String::trim() 方法删除输入的前导和尾随空格,并检查输入是否等于 "quit"。如果输入不是 "quit",则循环将继续读取输入;如果输入是 "quit",则循环将退出。

结论

while 循环是 Rust 中最基本和最灵活的控制流之一。它可以用于各种用例,例如计算、迭代和交互式输入。需要注意的是,在 while 循环中修改变量时,必须使用 mut 关键字来标记它们。另外,您应该小心使用 while 循环,以避免出现无限循环和其他问题。