Rust编程中的循环语句

news2025/1/13 17:28:29

【图书介绍】《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.coloradmin.cn/o/2199339.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu双卡训练过程中电脑总是突然重启【解决方法】

本来以为是温度过热造成的&#xff0c;发现不是&#xff0c;因为在重启的瞬间&#xff0c;gpu温度并没有特别高。 参见视频如下&#xff1a; 双卡训练过程中gpu温度监测 然后尝试了另一种方法&#xff1a; 限制gpu显卡的功率 具体操作如下&#xff1a; 先检查当前gpu功率限…

Electron构建桌面应用程序,服务于项目的自主学习记录(持续更新...

无所畏惧地面对未知&#xff0c;并将其视为成长的机会 大纲官网快速入门1.安装node.js -- 这里推荐用nvm管理2.脚手架创建3.electron 包安装到应用的开发依赖4.创建主进程(main.js)并启动项目1.创建页面2.配置main.js3.启动项目 -- 效果 进阶 -- 基于项目场景功能使用场景一&am…

SldWorks问题 2. 矩阵相关接口使用上的失误

问题 在计算三维点在图纸&#xff08;DrawingDoc&#xff09;中的位置时&#xff0c;就是算不对&#xff0c;明明就4、5行代码&#xff0c;怎么看都是很“哇塞”的&#xff0c;毫无问题的。 但结果就是不对。 那就调试一下吧&#xff0c;调试后发现生成的矩阵很不对劲&#…

Appium Device Farm安装教程

环境要求&#xff1a;Appium version ≥ 2.4.X 安装appium npm install -g appium2.11.3 如果安装提示如下问题 npm error code EEXIST npm error syscall rename npm error path /Users/wan/.npm/_cacache/tmp/d5787519 npm error dest /Users/wan/.npm/_cacache/content-…

Cpp::STL—list类的模拟实现(下)(14)

文章目录 前言一、默认生成函数构造函数析构函数 二、迭代器相关函数begin & end 三、访问容器相关函数front & back 四、插入、删除函数inserterasepush_back & pop_backpush_front & pop_front 五、其余函数sizeresizeemptyswap 总结 前言 承接上文&#xff…

数据恢复篇:适用于 Windows 操作系统的 5 大数据恢复软件

如今&#xff0c;数字空间正在快速发展。每个人都使用某种数字设备&#xff0c;如计算机、笔记本电脑、移动设备等来存储重要文档、照片、视频和其他重要文件。但事情并不总是一帆风顺。在很多情况下&#xff0c;技术会失败&#xff0c;您可能会遇到一些严重的问题&#xff0c;…

Leetcode 下一个排列

首先理解整数的字典序&#xff0c;字典序排列总是优先让“较小的”元素出现在前面。字典序的排列规则类似于字典中的单词排列方式&#xff0c;从左到右逐位比较&#xff0c;较小的数字优先出现。按照正整数元素排列的字典序&#xff0c;如果将每个排列视为一个整数值&#xff0…

Awaken Likho恶意组织利用高级网络工具对俄罗斯政府发起“猛攻”

近日&#xff0c;俄罗斯政府机构和工业实体遭遇了一场名为“ Awaken Likho ”的网络活动攻击活动。 卡巴斯基表示&#xff0c;攻击者现在更倾向于使用合法MeshCentral平台的代理&#xff0c;而不是他们之前用来获得系统远程访问权限的UltraVNC模块。这家俄罗斯网络安全公司详细…

函数信号发生器的使用方法

函数信号发生器&#xff08;Function Generator&#xff09;是电子工程师和技术人员在电路设计、测试和调试中常用的一种设备。它可以产生各种标准波形&#xff0c;如正弦波、方波、三角波等&#xff0c;以及用户自定义的任意波形。在本文中&#xff0c;我们将详细介绍函数信号…

Linux同时安装多个JDK

Linux同时安装多个JDK 一、JDK1.1、JDK的下载1.2、解压并放置目录 二、通过alias切换版本2.1、修改profile文件2.2、使用和验证 三、使用update-alternatives工具3.1、修改profile文件3.2、指定JDK版本3.3、使用和验证 四、总结 一、JDK 1.1、JDK的下载 JDK官网下载&#xff…

抖音外卖小时达服务商申请渠道开通,首选服务商推荐!

近日&#xff0c;国内头部短视频平台抖音正式宣布取消小时达业务的城市限制&#xff0c;并开启服务商的招募工作。随即&#xff0c;全国各地的商家和有意向进入本地生活赛道的创业者们都开始打听起了与抖音小时达服务商相关的各类消息&#xff0c;以抖音小时达服务商怎么申请为…

大模型生成PPT大纲优化方案:基于 nVidia NIM 平台的递归结构化生成

大模型生成PPT大纲优化方案&#xff1a;基于 nVidia NIM 平台的递归结构化生成 待解决的问题 生成PPT大纲是一种大模型在办公场景下应用的常见需求。 然而&#xff1a; 目前直接让大模型生成大纲往往是非结构化的&#xff0c;输出格式多样&#xff0c;难以统一和规范&#…

ZBrush入门使用介绍——17、FiberMesh

大家好&#xff0c;我是阿赵。   继续介绍ZBrush的使用。这次来看看FiberMesh功能。这是一个可以模仿毛发的功能。 一、 使用FiberMesh的预览功能 先准备一个模型&#xff0c;并生成多边形网格 然后按着Ctrl&#xff0c;在模型的表面画一个遮罩。 找到FiberMesh功能&#…

QT:计算点到线段的垂线段的距离

描述 在Qt中&#xff0c;要计算一个点到一条线段的垂线段的长度&#xff08;即点到线段上最近点的距离&#xff0c;且这个点是垂直于线段的&#xff09;&#xff0c;你不能直接使用QVector2D::distanceToLine&#xff0c;因为这个方法计算的是点到直线的垂直距离&#xff0c;而…

线程中的异常处理

线程中的异常处理 concurrent.futures — 启动并行任务 — Python 3.13.0 文档 from concurrent.futures import ThreadPoolExecutordef task():a 1 / 0print(任务执行中...)with ThreadPoolExecutor(max_workers5) as t:for i in range(10):worker t.submit(task)没有任任…

Unity实现自定义图集(二)

以下内容是根据Unity 2020.1.0f1版本进行编写的   实现一个自定义图集,该怎么入手呢。首先简单思考一下unity是怎么实现图集的。 因为unity的ui部分是开源的,所以我们可以看到UGUI的源代码,另外,Unity的内置Shader也是开源的,可以直接在官网下载(在下载的网页选择Built…

一文彻底搞懂大模型 - Hugging Face Transformers

Hugging Face Hugging Face Transformers是一个开源的预训练模型库&#xff0c;旨在将NLP领域的最新进展向更广泛的机器学习社区开放。该库包含了经过精心设计的最先进的Transformer架构&#xff0c;并提供了易于使用的API**&#xff0c;使得研究人员和开发者能够轻松地加载、…

Linux环境安装Anaconda

1.环境检查 uname -a2.下载Anaconda 下载地址: Anaconda 根据自己的版本下载 3.安装Anaconda 将下载的文件上传到Linux服务器设置权限 chmod x Anaconda3-2024.02-1-Linux-x86_64.sh执行.sh文件 ./Anaconda3-2024.02-1-Linux-x86_64.sh直接回车&#xff0c;一直回车&…

解决:由于没有远程桌面授权服务器可以提供许可证,远程会话连接已断开.请跟服务器管理员联系

今天早上远程连接京东云服务器&#xff0c;居然蹦出了下面的提示 查了下这个提示&#xff0c;出现这个报错的原因有两种&#xff1a; 1. 系统添加了“远程桌面会话主机”角色后&#xff0c;该授权到期&#xff08;可以免费试用120天&#xff0c;到期需要付费才能使用&#xff…

有哪些AI产品可以真正提高办公和学习效率?

你还在为加班熬夜、效率低下而苦恼吗&#xff1f;还在担心错过AI时代的风口&#xff0c;被时代抛弃吗&#xff1f; 告别效率焦虑&#xff0c;AI赋能你的学习和工作 现在有一些AI产品能为我们提供帮助&#xff0c;比如豆包、KIMI、通义千问、ChatGPT等等&#xff0c;帮助我们做P…