当前位置: 首页>后端>正文

rust学习-3.1-控制语句-循环

在Rust中,循环是一种控制结构,它允许你重复执行一段代码直到满足某个条件。Rust提供了几种循环机制:loopwhilefor

1. loop 循环

loop 是最简单的循环形式,它会一直执行代码块,直到被显式地中断。

fn main() {
    let mut count = 0;
    loop {
        println!("计数器: {}", count);
        count += 1;
        if count == 5 {
            break; // 当计数器达到5时,退出循环
        }
    }
}

在这个例子中,loop 会一直执行,每次迭代增加 count 的值,并在 count 达到5时使用 break 语句退出循环。

2. while 循环

while 循环在条件为真时执行代码块。

fn main() {
    let mut count = 0;
    while count < 5 {
        println!("计数器: {}", count);
        count += 1;
    }
}

在这个例子中,while 循环会一直执行,直到 count 不再小于5。

3. for 循环

for 循环用于遍历集合(如数组、范围等)的元素。

fn main() {
    for count in 0..5 {
        println!("计数器: {}", count);
    }
}

在这个例子中,for 循环遍历从0到4的范围,每次迭代将 count 设置为范围的下一个值。

循环的返回值

在Rust中,loop 循环可以作为表达式使用,并且可以返回值。

fn main() {
    let result = loop {
        println!("再次运行循环");
        break 42; // 返回值
    };
    println!("循环的返回值: {}", result);
}

在这个例子中,loop 循环返回了值 42,该值被赋给了 result 变量。

continue

在Rust中,continue关键字用于立即结束当前循环的当前迭代,并开始下一次迭代。当你想要跳过当前循环的剩余部分,但不想完全退出循环时,这非常有用。
下面是一个使用continue的简单例子,它打印1到10之间的所有奇数:

for number in 1..=10 {
    if number % 2 == 0 {
        continue; // 如果number是偶数,跳过本次迭代
    }
    println!("{}", number); // 只打印奇数
}

在这个例子中,continue语句用于跳过循环中的偶数。当number % 2 == 0为真时,即number是偶数时,continue被执行,println!语句被跳过,循环直接进入下一次迭代。
你可以在while循环和for循环中使用continue,无论是单层循环还是嵌套循环。这对于根据特定条件控制循环流程非常有用。

break

在Rust中,break关键字用于立即退出当前所在的循环。当你想要提前结束循环,不再执行任何剩余的迭代时,这非常有用。
下面是一个使用break的简单例子,它查找1到10之间的第一个能被7整除的数字,并退出循环:

for number in 1..=10 {
    if number % 7 == 0 {
        println!("The first number divisible by 7 is {}", number);
        break; // 一旦找到,退出循环
    }
}

在这个例子中,当number % 7 == 0为真时,即number能被7整除时,println!语句被执行,然后break语句立即退出循环。
break关键字也可以用于退出while循环,以及嵌套循环中的外层循环。为了退出外层循环,你可以在break后跟一个标签(label),这个标签必须放在你想退出的循环之前。例如:

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i == j {
            break 'outer; // 退出外层循环
        }
        println!("i = {}, j = {}", i, j);
    }
}

在这个例子中,当ij相等时,break 'outer;语句会导致程序退出外层循环,而不仅仅是内层循环。标签的使用使得可以精确控制想要退出的循环层级。


https://www.xamrdz.com/backend/3vu1944790.html

相关文章: