Rust流程控制

Rust学习教程19 - 流程控制 流程控制 80后应该都对学校的小混混记忆犹新,在那个时代,小混混们往往都认为自己是地下王者,管控着地下事务的流程,在我看来,他们就像代码中的流程控制一样,无处不在,很显眼,但是又让人懒得重视。 言归正传,Rust程序是从上而下顺序执行的,在此过程中,我们可以引入循环、分支等流程控制方式,帮助我们的代码更好的实现相应的功能。 使用if来做分支控制 if else无处不在 - 鲁迅说 但凡你能找到一门编程语言没有if else,那么一定更要反馈给鲁迅,反正不是我说的:) 总之,只要你拥有其它语言的编程经验, 阅读详情
流程控制
条件判断

满足指定条件执行某个功能

三种条件判断

  • if 满足条件,执行功能
  • if-else 满足指定条件,执行某个功能,不满足条件执行另一个功能
  • if-else if-else 用于多个条件分支执行对应的功能的程序逻辑
if条件判断
if conditional_test {
    // true执行
}

Rust不会自动将非布尔值转换为布尔值,必须显示使用布尔值作为表达式的值

if-else条件判断
if conditional_test {
    // true执行
}else{
    // false 执行
}
if-else if-else条件判断
if conditional_test_1 {
    
}else if conditional_test_2{
    
}else{
    
}
循环

在满足指定条件的情况下,重复执行一段代码

三种循环

  • loop 重复执行、永远不会结束的循环
  • while 在条件表达式的值为true时永远执行的循环
  • for : 重复执行指定次数的循环
loop循环

没有循环条件,无限次重复执行一段代码,直到调用break 退出循环

break : 循环控制语句,退出循环并将返回值返回

let mut count = 0;
let counter = loop{
    count += 1;
    let num = count *2;
    if count == 10 {
        break num;  // 返回num的值
    }
};
while循环

while循环在每次执行代码前进行条件判断,只要条件表达式的值为true就会重复执行代码。

let mut count = 0;
let mut counter = 0;
while count != 10 {
    count += 1;
    counter = count *2;
}
for循环

for循环使用for … in … 语法格式,重复执行指定次数的循环。

因其安全性和简洁性,常用于对范围类型或者集合类型的所有元素执行指定的操作

let mut counter = 0;
for count in 1..=10 {
    counter = count *2;
}
continue 和 break 语句

continue 和 break都是用于循环控制的语句。

  • break 直接退出循环,不再执行循环体内的任何代码。
  • continue 退出本次循环,不再执行循环体continue之后的代码,然后再次条件判断,开始新一轮循环
for i in 0..10 {
    for i== 0  || i == 4 {
        continue;
    }
    if i== 6 {
        break;
    }
}
match模式匹配

检查当前值是否匹配一系列模式中的某一个。

模式可以由字面量、变量、通配符和其他内容构成。

每一个模式都是一个分支,程序根据匹配的模式执行相应的代码。

Rust 要求match模式匹配是穷尽式的,即必须穷举所有的可能,否则会导致程序错误。

通配符"_"会匹配没有指定的所有可能的模式。

let age = 6;
match age{
    0 => println!("0"),
    1..=2 => println!("1..2"),
    _ => (),
}
if let 和 while let 模式匹配

在某些场景中可以替代match模式匹配来简化代码

可以将if let 视为match的语法糖,仅当匹配某一模式时执行代码,并忽略其他所有模式

match value{
    Some(7) => println!("seven"),
    _ => (),
}

使用if let 可以简化

if let Some(7) = value {
    println!("seven");
}

while let 后紧跟的表达式中,左侧为匹配模式,右侧为要匹配的值,两者通过=分隔。

let mut vec = vec![1,2,3,4];
loop{
    match vec.pop(){
        Some(value) => println!("{}",value),
        None => break,
    }
}
let mut vec = vec![1,2,3,4];
while let Some(value) = vec.pop(){
    println!("{}",value);
}
搭建ipv6并发代理池 我开了个知识星球,把将本期搭建写成shell脚本已放到了里面,有需要的小伙伴可以自行去取,jd的参数,阿里bxet纯算、快手滑块,Pdd—Anti,ikuai,b站login之-极验3文字,某音ab,瑞数456vmp补环境等等,主要是某些大佬加我问成品,很多人都打着白嫖的手段去加我好友为目的,问完基本就以后没有任何的交集,这样的交好友雀氏没有任何意义。不如我直接开个星球,里面直接放我逆向的成品以及逆向的思路,这样大家各取所需,我也有点收益,意义更明确点,免得浪费大家的时间。我是pve下的ubuntu。 阅读详情

相关推荐

ESP32+micro-ROS机器人开发实战:轻量级ROS2嵌入式集成

ROS2是现代机器人软件栈的核心框架,其基于DDS的分布式通信与QoS保障能力为多节点协同提供基础支撑;而micro-ROS作为专为微控制器优化的ROS2兼容中间件,解决了资源受限设备(如ESP32)接入ROS2生态的关键难题。其通过分层架构将DDS通信下沉至上位机Agent,使MCU仅需运行轻量Client,大幅降低内存开销(实测<180KB)并保留标准ROS2接口语义。该方案广泛应用于教育机器人、移动底盘、传感器节点等嵌入式场景,尤其适合基于ESP-IDF开发的Wi-Fi/BLE物联网机器人系统。本文以

weixin_29025501的博客 400

Rust语言基础教程学习【二】(函数、条件语句、循环)

Rust语言基础教程学习【二】函数、函数参数、返回值、条件语句、循环

cyf1294311560的博客 786

【crawler笔记】R语言简单动态网页爬虫(rvest包)示例

1、爬虫目标 大家普遍认为Python的爬虫功能强大,但在解决动态加载或者登陆网站时,Python存在一定困难的,相对于一些普通爬虫,使用R语言会更方便。 以https://www.thepaper.cn/为例,爬取首页的新闻(标题、内容、时间),主要采用的是动态网页中常用的httr包。 初始学习时,参考了B站《20分钟入门基于R语言的网络爬虫_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili》的视频,但代码运行出现了报错,所以在原代码上做了修改。 2、代码分析及报错修改 library(rv

seeyouer1205的博客 3275

Rust的控制流:条件、循环以及模式匹配

条件控制 Rust的条件控制也是使用if else,和其他语言相比没有多大区别,直接看例子: fn main() { let number = 10; if number < 0 { println!("number小于0"); } else if 0 <= number && number <= 5 ...

鸿鹄之志 2296

ThinkPad X230魔改指南:从博通网卡驱动到1080P屏显全攻略(附Sonoma避坑清单)

本文详细介绍了ThinkPad X230的全面改造方案,包括博通网卡驱动(BCM94352HMB)的安装与调试、1080P屏幕改装技术以及macOS Sonoma系统的适配优化。通过硬件升级和软件调优,使这台经典商务本焕发新生,适合DIY爱好者和技术极客参考实践。

weixin_30379531的博客 584

消费级显卡跑大模型:RTX 3060 12G 部署 70 亿参数 AI 编程助手的优化实战

本文详细介绍了如何在消费级显卡RTX 3060 12G上,通过量化、投机解码和分页KV-Cache等核心优化技术,成功部署并流畅运行70亿参数的CodeLlama-7B编程助手。文章提供了从环境配置、模型准备到参数调优的完整实战笔记,实测显存占用降至7.3GB,生成速度达21.7 token/秒,为开发者和技术爱好者提供了可行的本地AI部署方案。

weixin_29053067的博客 1257

rust流程控制

本章内容不少:你学习了变量、标量和复合数据类型、函数、注释、if表达式和循环!实现华氏度与摄氏度的相互转换。生成第 n 个斐波那契数。利用歌曲中的重复结构打印圣诞颂歌《圣诞十二日》的歌词。准备好后,我们将讨论 Rust 中其他语言不常见的概念:所有权。

qq_29372275的博客 971

芒果YOLOv8改进160:姿态估计Head篇:即插即用|轻量化非对称多级压缩LOADH旋转检测头,原创改进适配YOLOv8高效检测头,检测头新颖改进,全网首发独一份

芒果YOLOv8改进159:OBB旋转检测头Head篇:即插即用|轻量化非对称多级压缩LOADH旋转检测头,原创改进适配YOLOv8高效检测头,检测头新颖改进,全网首发独一份

包括YOLOv5、YOLOv7、YOLOv8等模型改进 812

【Rust练习】14.流程控制

练习题来自:https://practice-zh.course.rs/flow-control.html。

矢车菊二十七号 1485

Video Diffusion Models:基于扩散模型的视频生成

Diffusion Models专栏文章汇总:入门与实战 前言:扩散模型已经被广泛运用到图像生成、image-to-image转换、时间序列生成、3D点云生成、文本生成、音频生成等领域,谷歌研究院最新的研究成果成功将diffusion models运用到视频生成领域。 目录 模型结构 分解时空体系联合训练 梯度条件法 恐怖的实验结果 论文和代码 个人启发 个人疑问? 模型结构 在前面的博文中,我详细介绍了为什么绝大部分的diffusion models都使用Unet结构.

沉迷单车的追风少年 6671

Vue - 最新详细实现滑块拖动拼图验证,网站登录验证滑块验证功能,拖动滑块到图片缺口的位置即为成功,滑块验证安全检测(详细示例代码,一键复制运行)

您一定见过很多系统都“配备”了滑块验证、拼图验证、找不同等,本质上都是为了验证登录系统的是人还是机器(代码),如下图所示效果: 您打开项目根目录,终端执行如下命令:拼图式拖动滑块验证 验证拖动滑块验证,滑动拼图/图片点选验证 接下来,在中加入以下代码: 如下图所示: 更多配置示例和参数详见官方文档,以下便是如上效果图的代码:.........

🏆 前端领域优质创作者 1万+

【一起学Rust | 基础篇】rust函数与流程控制详解

在之前的学习中,你已经见过Rust中最重要的一个函数——main,他是一个程序的入口函数。本节我们将详细的讲解Rust中的函数和流程控制的部分内容,学习完本期内容,你的代码就会更加丰富。我们在Rust中通过输入fn后面跟着函数名和一对圆括号来定义函数。大括号告诉编译器哪里是函数体的开始和结尾。一个无参函数的结构如下}花括号里面包着的,我们称之为——作用域。以上就是本期的所有内容。本期主要讲了两部分内容,分别是rust的函数和流程控制。...

专注Rust编程与技术分享,涵盖C++、Python等开发实战,新手友好,专注实战,助力编程成长。 10万+

手把手教你学simulink(26.8)--控制算法场景示例:基于强化学习的无人机姿态稳定控制系统

首先,我们需要定义无人机的姿态稳定控制环境。环境包括无人机的状态(姿态角、角速度等)和动作(电机转速)。我们还需要定义奖励函数,用于评估控制器的表现。matlab深色版本% 定义环境% 定义状态空间% 12个状态变量% 定义动作空间% 电机转速范围奖励函数用于评估控制器的表现。我们可以根据无人机的姿态误差、角速度误差以及控制输入的变化率来设计奖励函数。具体来说,当无人机的姿态接近设定值时,给予正奖励;当姿态误差较大或控制输入变化剧烈时,给予负奖励。matlab深色版本。

MHD0815的博客 495

Rust 流程控制学习教程

分支控制if-else是唯一的分支结构,条件必须是bool类型,且支持作为表达式返回值(替代三元运算符)。循环控制loop:无限循环,需用break终止,支持返回值。while:条件循环,适合“已知终止条件,未知次数”。for:遍历循环,优先用于集合/迭代器,安全简洁(避免索引越界)。控制开关break终止循环,continue跳过当前轮次。

目前专注区块链相关技术的学习与分享 926

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Rust 的流程控制与函数

本文介绍了Rust编程语言中的流程控制与函数相关知识。主要内容包括:条件判断(if-else、iflet模式匹配)、三种循环结构(loop、while、for)、函数的定义与调用(参数、返回值、函数指针)以及函数的高级特性(默认参数模拟、可变参数实现和递归函数)。此外还讲解了代码块作用域规则和变量遮蔽特性。文章通过丰富的代码示例详细展示了各语法特性的使用方法,帮助读者掌握Rust中流程控制与函数编程的核心概念。

北京锋通科技有限公司的技术blog 973

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Rust 入门 流程控制 (九)

Rust程序是从上而下顺序执行的, 在此过程中,我们可以通过循环、分支等流程控制的方式,更好的实现相应的功能,

m0_48050264的博客 1060

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Rust - 流程控制、函数

概述 这篇是学习Rust的第二篇博客,在所有的编程语言里都离不开流程控制的模块,流程控制的模块包括条件语句和循环两部分。 rust初试 - 安装环境、基本类型 if else Rust的if的布尔条件不用括号括起来。if所有分支返回的类型必须相同。 fn main() { let number = 3; if number < 5 { println!("条件为 true"); } else { println!("条件为 false");

stark张宇 834

Rust 语言基础—流程控制

Rust 语言基础 五、流程控制 Rust 语言也有三种流程结构:顺序结构、选择结构和循环结构。 1、选择结构 选择结构,通过使用关键字 if 或 if…else、if…else if…else 加上条件语句来实现。 1.1、单分支选择结构 单分支选择结构,通过使用 if 关键字及条件语句实现,如下例子: fn main() { if_test(18); if_tes...

御承扬的博客 954

rust语言流程控制

rust代码是从上至下顺序执行的,在这个过程中,可以通过循环,分支等流程控制方式来实现相应的逻辑。

zy010101博客 982

2024 Rust现代实用教程 流程控制与函数

函数的代码本身通常是存储在可执行文件的代码段,而在调用时函数会在栈,开辟一个新的stack frame(栈空间),用于存储函数的局部变量、参数和返回地址等信息,而当函数结束后会释放该空间。而当传入non-Copy value(Vec、String等)传入函数时,实参会转移value的所有权给形参,实参会失去value的所有权而在函数结束时,value的所有权会释放。1.函数的定义:在Rust中,你可以使用fn关键字声明和定义函数,而main是程序的入口点是一种特殊的函数。

喜欢打篮球的普通人 1011

Rust流程控制(上):if_else与match模式匹配

程序的核心在于执行逻辑和做出决策。一个程序如果只能从头到尾顺序执行一系列指令,其能力将受到极大限制。为了构建能够响应不同输入、处理不同状态的复杂应用,我们需要流程控制(Control Flow) 机制。流程控制允许我们根据特定条件来决定执行哪些代码块,或者重复执行某些代码块。Rust提供了一系列强大而富有表现力的流程控制工具。与其他许多语言一样,它拥有基于条件判断的结构和用于重复执行的循环(、、)。但更重要的是,Rust还提供了一个极其强大和灵活的工具——表达式,它将模式匹配(Pattern Matchin

haolove527的专栏 1112

RUST 学习日记 第17课 ——流程控制

<h3 id="rust--学习日记-第17课-流程控制">RUST 学习日记 第17课 ——流程控制</h3> <hr> <p><img src="https://gitee.com/haoyu3

我是小学生的博客 367

【一起学rust | 基础篇】流程控制与模式匹配

Rust的流程控制主要包括分支和循环结构。分支控制使用if表达式,它不仅可以进行条件判断,还能作为表达式赋值,但所有分支必须返回相同类型。多条件可使用else if。循环控制推荐优先使用for循环,因其性能高且安全性强,支持集合遍历和所有权控制。while适用于条件型循环,loop则用于无限循环,可通过break返回值。模式匹配是Rust的重要特性,但摘要中未展开说明。整体来看,Rust的流程控制兼具灵活性和安全性,尤其强调表达式思维和所有权管理。

序章的博客 332

看一看Rust,记录自己的笔记:流程控制

rust 的流程控制

Firewine 的博客 177

010 Rust流程控制

Rust的条件语句必须使用bool类型,不支持C/C++中非0即真的规则。循环语句包括while、for-in(通过迭代器或下标访问数组)和loop(可用break返回值)。for循环需用while替代传统C++风格的for循环。这些控制结构体现了Rust的类型安全和简洁性特点。

技术皮皮虾 515
上一篇: Windows库程序
下一篇: Windows线程
暴风雨中的白杨
博客等级 码龄6年 1070粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴风雨中的白杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值