Rust 循环语句

Rust 循环语句就是在指定条件为真的情况下,重复执行一组语句。

Rust 语言中有三种循环语句:

  • for 语句。一种有确定次数的循环。
  • while 语句。一种在某些条件为真的情况下就会永远执行下去的循环。
  • loop 语句。一种重复执行且永远不会结束的循环。

三种语句都能实现循环功能,只不过侧重点不一样。

 

1. Rust for 循环语句

for 语句是一种能确定循环次数的循环。

for 语句用于执行代码块指定的次数。

可能和其它语言有所不同,Rust 中的 for 循环只有 for..in 这种格式,常用于迭代一组固定的值,例如数组、向量等。

1)for 循环语句的语法

for temp_variable in lower_bound..upper_bound {
   // action 要重复执行的代码
}
  • lower_bound..upper_bound 用于指定循环区间,是一个左闭又开的区间,比如 1..3 则只有 1 和 2 不包含 3。
  • temp_variable 是循环迭代的每一个元素。
  • temp_variable 变量的作用域仅限于 for...in 语句,超出则会报错。

2)for 循环语句的范例

下面的代码,使用 for...in 循环,重复输出 1 到 11 之间的数字(不包括 11 )

fn main(){
   for x in 1..11{
      println!("x is {}",x);
   }
}

编译运行以上 Rust 代码,输出结果如下

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

 

2. Rust while 循环语句

while 语句是一种只要条件为真就一直会重复执行下去的循环。

while 循环会在每次重复执行前先判断条件是否满足,满足则执行,不满足则退出。

1)while 循环语句的语法

while ( condition ) {
    // action 要重复执行的代码
}

condition 是一个表达式,返回的结果会转换为 布尔类型。只要 condition 返回真,那么循环就会一直执行。

2)while 循环语句的范例

下面的代码,使用 while 循环重写下上面的代码,重复输出 1 到 11 之间的数字(不包括 11 )

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

编译运行以上 Rust 代码,输出结果如下

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 11

 

3. Rust loop 循环语句

loop 语句代表着一种死循环。它没有循环条件,也没有循环次数,它就是一个永动机。

1)loop 循环语句的语法

loop {
    // action 要重复执行的代码
}

2)loop 循环语句的范例

下面的语句,我们使用 loop 输出 1 到无限大的数字。

实际上是不可能的

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

编译运行以上 Rust 代码,输出结果如下

x=1
x=2
x=3

...
...

x=61^Cx=612514
x=612515
x=612516

这是一个死循环,如果不出意外是不会停下来的。需要我们手动退出程序,这时候你可以按下 CTRL + C 组合建退出程序。

注意:任何程序,如果进入死循环,你可以按下 CTRL + C 组合键退出程序。

 

4. 循环控制语句 break

break 语句能够在 action 语句块中退出循环语句。

1)break 语句的语法

break;

1)break 语句的范例

我们使用 break 语句改造下我们的 loop 循环,在 x 大于 11 就退出循环,也就是使用 loop 循环实现 while 循环。

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

编译运行以上 Rust 代码,输出结果如下

x=1
x=2
x=3
x=4
x=5
x=6
x=7
x=8
x=9
x=10

 

5. 循环控制语句 continue

continue 语句能够退出当前循环,就是停止执行剩下的语句,直接进入下一个循环。

1)continue 语句的语法

continue;

2)continue 语句的范例

下面的代码,我们使用 for 循环输出 1 到 11 之间的数字,但是跳过数字 5

fn main(){
    for x in 1..11{
        if 5 == x {
            continue;
        }
        println!("x is {}",x);
    }
}

编译运行以上 Rust 代码,输出结果如下

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

Rust 语言提供了两种形式的字符串:字符串字面量 &str,它是 Rust 核心内置的数据类型。字符串对象 String< /code>,它不是 Rust 核心的一部分,只是 Rust 标准库中的一个结构体。字符串字面量 &str 字符串字面量 &str 就是在编译时就知道其值的字符串类型,是 Rust 语言核心的一部分。字符串对象:字符串对象是是一个长度可变的集合。