Rust - 循环

  • 简述

    可能存在需要重复执行代码块的情况。通常,编程指令是按顺序执行的:首先执行函数中的第一条语句,然后是第二条语句,依此类推。
    编程语言提供了允许更复杂的执行路径的各种控制结构。
    循环语句允许我们多次执行一个语句或一组语句。下面给出的是大多数编程语言中循环语句的一般形式。
    循环语句
    Rust 提供了不同类型的循环来处理循环需求 -
    • while
    • loop
    • for
  • 定义循环

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

    For循环

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

    句法

    
    for temp_variable in lower_bound..upper_bound {
       //statements
    }
    
    for循环的一个例子如下所示
    
    fn main(){
       for x in 1..11{ // 11 is not inclusive
          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
    
  • while 循环

    当循环中的迭代次数不确定或未知时,使用不定循环。
    while 限循环可以使用 -
    序号 名称和描述
    1
    While
    while循环执行指令的条件指定每次评估为True
    2
    Loop
    Loop是一个while(TRUE)无限循环

    Illustration - while

    
    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
    

    Illustration -loop

    
    fn main(){
       //while true
       let mut x = 0;
       loop {
          x+=1;
          println!("x={}",x);
          if x==15 {
             break;
          }
       }
    }
    
    break语句用于从构造中取出控制。在循环中使用 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);
       //outputs 10
    }
    
    上面的示例显示了 0 到 20 之间的偶数值。如果数字是偶数,则循环退出当前迭代。这是使用 continue 语句实现的。
    0 到 20 之间的奇数个数为 10