当前位置: 首页 > article >正文

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
循环结束了


http://www.kler.cn/news/339965.html

相关文章:

  • 平时使用的正则总结
  • 前端的全栈混合之路Meteor篇:关于前后端分离及与各框架的对比
  • LSTM的变体
  • ArkTS基本语法详解
  • 浙大数据结构:08-图7 公路村村通
  • helm 测试卸载或删除(redis)
  • RabbitMQ概述
  • Redis: 集群高可用之节点与插槽管理
  • 介绍C++
  • funasr: 报错 CUDA error: invalid device ordinal
  • GO语言中struct{}和struct{}{}区别
  • 10-记录器
  • 高精度分板机主轴4033AC气动自动换刀的优势特点
  • LSTM-Transformer时间序列预测(单输入单预测)——基于Pytorch框架
  • java家政预约上门系统源码,家政服务平台源码,基于SpringBoot框架,数据库使用MySQL,界面渲染采用Thymeleaf技术开发
  • 文件防泄密措施措施有哪些?5种文件防泄密措施等你体验!【小白成长篇!】
  • uniapp使用Vue3组合式,如何进行Vue模块自动导入
  • 初识Linux · 自主Shell编写
  • SpringBoot框架:服装生产管理的智能助手
  • Electron构建桌面应用程序,服务于项目的自主学习记录(持续更新...