Rust循环控制


在某些情况下,需要重复执行一段代码。通常,编程指令是按顺序执行的:函数中的第一条语句首先执行,然后执行第二条,依此类推。

编程语言提供了各种控制结构,允许更复杂的执行路径。

循环语句使我们可以多次执行一个语句或一组语句。下面给出的是大多数编程语言中循环语句的一般形式。

1620205951456055.jpg

Rust提供了各种类型的循环来满足循环需求:

  • while

  • loop

  • for

确定循环


迭代次数是确定/固定的循环称为确定循环。这for循环是确定循环的实现。

For循环

for循环将代码块执行指定的次数。它可用于迭代一组固定值,例如数组。 for循环的语法如下所示

语法

for temp_variable in lower_bound..upper_bound {
    //语句
}

for循环的示例如下所示

fn main(){
    for x in 1..11{ // 11不包含在内
        if x==5 {
            continue;
        }
        println!("x is {}",x);
    }
}

注意:变量x只能在for块内访问。

x is 1
x is 2
x is 3
x is 4
x is 6
x is 7
x is 8
x is 9
x is 10

无限循环


当循环中的迭代次数不确定或未知时,将使用不确定循环。

不确定循环可以使用以下方法实现:

序号名称与说明
1

While

while 当条件为true时,循环执行指令

2

Loop

loop 是一阵(true)不定的循环

例子:一会儿

fn main(){
    let mut x = 0;
    while x < 10{
        x+=1;
        println!("inside loop x value is {}",x);
    }
    println!("outside loop x value is {}",x);
}

输出如下图:

inside loop x value is 1
inside loop x value is 2
inside loop x value is 3
inside loop x value is 4
inside loop x value is 5
inside loop x value is 6
inside loop x value is 7
inside loop x value is 8
inside loop x value is 9
inside loop x value is 10
outside loop x value is 10

例子:循环

fn main(){
    //虽然为真

    let mut x = 0;
    loop {
        x+=1;
        println!("x={}",x);

        if x==15 {
            break;
        }
    }
}

Thebreak语句用于将控件移出构造。在循环中使用break会使程序退出循环。

x=1
x=2
x=3
x=4
x=5
x=6
x=7
x=8
x=9
x=10
x=11
x=12
x=13
x=14
x=15

Continue语句


Continue语句跳过当前迭代中的后续语句,并将控制权返回到循环的开头。与break语句不同,continue不会退出循环。它终止当前迭代并开始后续迭代。

下面给出了continue语句的示例。

fn main() {

    let mut count = 0;

    for num in 0..21 {
        if num % 2==0 {
            continue;
        }
        count+=1;
    }
    println! (" The count of odd values between 0 and 20 is: {} ",count);
    //输出10
}

上面的示例显示0到20之间的偶数值。如果数量为偶数,则循环退出当前迭代。这是使用continue语句实现的。

0到20之间的奇数计数为10