Rust编程中的循环语句

【图书介绍】《Rust编程与项目实战》-CSDN博客

《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com)

Rust编程与项目实战_夏天又到了的博客-CSDN博客

6.2 for 循 环

迭代次数是确定/固定的循环称为确定循环。for 循环是一个确定循环。for 循环执行代码块指定的次数。它可用于迭代一组固定的值,例如数组。for 循环的语法如下:

复制代码
for temp_variable in lower_bound..upper_bound {
    //代码语句
}

temp_variable是一个临时变量,取值范围是[lower_bound,upper_bound-1],也就是让temp_variable不断改变取值(从lower_bound开始,每次加1),不断执行代码语句。

第一次temp_variable取值是lower_bound,然后执行代码语句;第二次temp_variable取值是lower_bound+1,然后执行代码语句;第三次temp_variable取值是lower_bound+2,然后执行代码语句,以此类推,一直到temp_variable取值upper_bound−1,此时将最后一次执行代码语句,则整个for循环结束。
注意:循环次数从lower_bound到upper_bound−1,不包括upper_bound。另外,花括号不能省略,即使只有一条代码语句。

下面举一个for循环的例子:

复制代码
fn main(){
    for x in 0..10
    {
      print!("{},", x);
    }
}

输出结果如下:

复制代码
0,1,2,3,4,5,6,7,8,9,

可见,x的取值范围为0~9,不包括10,0~9已经是10次了,所以执行了10次打印语句。

6.3 while 循 环

当循环中的迭代次数不确定或未知时,通常使用while循环。while循环的语法格式如下:

复制代码
while 表达式
{
    循环体内的语句
}

这种循环语句中的表达式是循环语句能否继续运行的条件,其功能是保证语句循环运行。只要表达式为true,就可以执行循环体内的语句,否则终止循环,执行循环体外的语句。比如:

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

值得注意的是,即使循环体内的语句只有一句,花括号依旧不能少。

Rust语言到写本书时还没有do-while的用法,但是do被规定为保留字,也许以后的版本中会 用到。

6.4 loop 循 环

loop告诉Rust永远重复执行一段代码,直到明确地告诉需要停止为止,否则将一直重复执行(直到你的机器没电为止),相当于一个while无限循环。示例代码如下:

复制代码
fn main() {
    loop {
        println!("loop!");
    }
}

执行该代码,不出意外的话将不会停止打印loop:

复制代码
loop
loop
loop
loop
loop
loop
loop
...

如果程序在VS Code中运行,则单击右上角的红色矩形按钮才会停止程序。如果该程序在命令行窗口执行,则需要按快捷键Ctrl+C才会停止程序。这里的loop循环也可以改写为:

复制代码
while true{
    println!("loop!");
}

6.5 break 语 句

通过使用break语句,即使在没有满足结束条件的情况下,也可以跳出一个循环。break可以被用来结束一个无限循环(Infinite Loop),或强迫循环在其自然结束之前结束。例如,我们想要在倒计数自然结束之前强迫它停止。break语句可以用在for、while和loop循环体中。

break既可以单独使用,也可以带参数,这个参数将作为循环体的返回值。

6.5.1 break单独使用

单独使用时,break的作用就是跳出循环,比如:

复制代码
fn main(){
    let mut x = 0;
    loop {
        x+=1;
        println!("x={}",x);
        if x==5 {
            break;
        }
    }
}

当满足x等于5的时候,就执行break语句,然后跳出loop循环,循环结束。输出结果如下:

复制代码
x=1
x=2
x=3
x=4
x=5

这个程序终止无限循环,当然也可以终止非无限循环,比如:

复制代码
fn main() {
    let mut x = 0;
    while x < 30 {
        x += 1;
        println!("{}", x);
        if x>5 {break;}
    }
    println!("循环结束了");
}

本来要执行30次循环,但一旦x大于5,就要执行break语句,从而提前跳出循环。输出结果 如下:

复制代码
1
2
3
4
5
6
循环结束了
相关推荐
a cool fish(无名)9 小时前
rust-方法语法
开发语言·后端·rust
a cool fish(无名)1 天前
rust-参考与借用
java·前端·rust
叶 落1 天前
[Rust 基础课程]猜数字游戏-获取用户输入并打印
rust·rust基础
RustFS1 天前
RustFS 如何修改默认密码?
rust
景天科技苑1 天前
【Rust线程池】如何构建Rust线程池、Rayon线程池用法详细解析
开发语言·后端·rust·线程池·rayon·rust线程池·rayon线程池
该用户已不存在2 天前
Zig想要取代Go和Rust,它有资格吗
前端·后端·rust
用户1774125612442 天前
不懂装懂的AI,折了程序员的阳寿
rust
量子位3 天前
vivo自研蓝河操作系统内核开源!Rust开发新机遇来了
rust·ai编程
祈澈菇凉3 天前
rust嵌入式开发零基础入门教程(六)
stm32·单片机·rust
祈澈菇凉3 天前
rust嵌入式开发零基础入门教程(二)
开发语言·后端·rust