📜  Rust 中的循环

📅  最后修改于: 2022-05-13 01:54:54.225000             🧑  作者: Mango

Rust 中的循环

循环是一种重复一系列指令直到满足特定条件的编程结构。与其他编程语言类似,Rust 也有两种类型的循环:

  • 无限循环:While 循环和循环
  • 定界循环:For 循环

让我们详细探讨它们。

While 循环

解释 while 循环的一种简单方法是循环运行直到满足给定条件。对于下面的循环,我们接受了用户输入,然后递减直到达到 1。

虽然循环通过检查条件开始,但在这里,我们创建具有循环局部作用域的变量,或者我们可以使用标记循环开始的已经存在的变量来使用用于检查条件的循环。如果为真,则执行循环。因此,它也被称为入口控制回路。一旦条件为真,循环体中的语句就会被执行,循环中包含一个变量,每次迭代都会更新。当条件变为假或明确要求中断时,循环终止,这标志着其生命周期的结束。

句法:



while condition {
  statements;
}

示例 1:一个 Rust 程序,用于打印从 10 到 1 的数字。

Rust
fn main() {
  
    let mut n = 10;
  
    while n!=0 {
        println!("{}", n);
        n-=1;
    }
}


Rust
fn main() {
    let mut n = 1;
  
    while n<=10 {
        println!("{}", n*2);
        n+=1;
    }
}


Rust
fn main() {
  
    for  n in 1..10 {
        println!("{}", n);
    }
}


Rust
fn main() {
  
    for i in 1..11 {
        println!("{}", i*2);
    }
}


Rust
fn main() {
    let mut n = 1;
  
    loop {
        println!("{}", n*2);
        n+=1;
        if n>10{
            break;
        }
    }
}


输出:

10
9
8
7
6
5
4
3
2
1

示例 2:使用 while 循环打印 2 的乘法表的程序。

fn main() {
    let mut n = 1;
  
    while n<=10 {
        println!("{}", n*2);
        n+=1;
    }
}

输出:

2
4
6
8
10
12
14
16
18
20

For 循环

类似于 while 循环的 for 循环具有明确的起点和终点以及每次迭代的增量。在下面的循环中,我们获取了用户输入并检查输入是低于还是高于 5。

For 循环与 while 循环有些不同。在这里,我们也创建了具有循环局部作用域的变量,或者我们可以使用一个已经存在的变量来标记循环的开始以在使用循环中使用。声明的变量也用于声明循环的终止条件。对于初始值和终止值之间的所有值,返回一个布尔值。它也是一个入口控制循环,因为在执行循环语句之前检查条件。然后检查条件为真,循环将被执行,如果值为假或明确定义为退出,则循环终止。每次迭代都会更新迭代值。



句法:

for iterator in range{
  statements;
}

示例 1:使用 For 循环打印从 1 到 10 的数字的程序。

fn main() {
  
    for  n in 1..10 {
        println!("{}", n);
    }
}

输出:

1
2
3
4
5
6
7
8
9
10

示例 2:使用 For 循环打印 2 的乘法表的程序。

fn main() {
  
    for i in 1..11 {
        println!("{}", i*2);
    }
}

输出:

2
4
6
8
10
12
14
16
18
20

循环语句

Rust 还支持另一种循环语句,称为循环语句。 Loop 语句会一直执行,直到出现 break 语句。 Break 语句(或)break 关键字用于退出循环。

句法:

loop {
  statements;
  // for exit
  break;
}

示例 1:使用 Loop 语句打印 2 的乘法表的程序。

fn main() {
    let mut n = 1;
  
    loop {
        println!("{}", n*2);
        n+=1;
        if n>10{
            break;
        }
    }
}

输出:

2
4
6
8
10
12
14
16
18
20