Rust 循环


Rust 循环

循环(looping)在编程中是不可少的功能。Rust支持多种循环类型,包括loopwhilefor 循环。在 Rust 中,循环的语法非常简洁,同时提供了强大的循环控制和迭代器抽象等基础设施来方便循环的使用。

loop 循环

loop 循环是最简单的循环结构,它可以无限次循环直到手动终止程序。它的语法非常简单,可以使用break 语句或者return 语句来终止循环:

loop {
    println!("Hello, world!");
}

和其他语言一样,break 语句可以用来提前终止循环:

let mut i = 0;

loop {
    i += 1;

    if i == 3 {
        break;
    }
}

println!("{}", i); // 3

类似于其他语言的语法,可以使用 continue 语句将控制流移动到下一个循环部分(为了避免死循环,必须确保循环条件能够在某个时候退出循环):

let mut i = 0;

loop {
    i += 1;

    if i == 3 {
        continue;
    }

    if i == 5 {
        break;
    }

    println!("{}", i);
}

while 循环

while 循环是一种更加通用的循环方式,它能够在满足条件的情况下多次执行循环体。它的语法如下:

while condition {
    code
}

和其他语言一样,条件在每次循环之前被检查:

let mut i = 0;

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

for 循环

for 循环是 Rust 的主要迭代结构,它用来循环遍历一个集合中的元素,比如从 0 到 10 的数字序列和字符串类型的值等。具体的语法如下:

for variable in collection {
    code
}

通过迭代器 trait,Rust 的 for 循环可以很容易的遍历大部分 Rust 集合的元素:

let arr = [1, 2, 3];

for i in arr.iter() {
    println!("{}", i);
}

除此之外,Rust 还提供了一些方便的迭代器函数,例如 enumerate , filter , map 等,可以使 for 循环的使用更加简单和高效。

循环标签

在 Rust 中,可以在循环语句的前面添加一个标识符来对循环进行命名,并且可以在 loop、while 或 for 循环内部使用 break 和 continue 语句使用此标签来终止或跳出循环。语法如下:

'loop_name: loop {
    // ...
    break 'loop_name;
}

总结

Rust 提供了简单而强大的循环结构,包括 loop 循环、while 循环和 for 循环。通过迭代器和标签的使用,可以很容易地对循环进行控制和管理,从而提高程序可读性和效率。在实际开发中,需要根据具体的场景和问题来选择适当的循环方式。