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

rust学习(六)控制流

学习完了函数,接下来学习控制流。rust的控制流包括if、else-if、else。循环语句包括loop、while、for等

老样子,我们利用caogo新建一个项目

  • cargo new branches
  • cd branches

if

如果我们学习过其他编程语言,if的判断条件可以是bool类型,也可以是一个逻辑表达式。但在rust中if后面只能跟bool值,rust不会将非布尔值转换为布尔值。

fn main(){// if表达式let x: u8 = 15;if x < 18 {println!("The legal of age is 18!");}
}

else-if else

如果我们对某一个值有有限个判断条件,我们可以通过else-if判断其他条件,并通过给出一个else来对当前面其他判断条件都不满足时,给出其他处理逻辑。

fn main(){// if else-if elselet number = 6;if number % 4 == 0 {println!("number is divisible by 4");} else if number % 3 == 0 {println!("number is divisible by 3");} else if number % 2 == 0 {println!("number is divisible by 2");} else {println!("number is not divisible by 4, 3, or 2");}
}

我们还可以将if与let结合使用,因为if是一个表达式,所以我们可以在let的右边使用它。
此外if的每个分支的可能返回值都必须是相同类型,这是rust规定的~~~

fn main(){// let与if搭配使用// if 的每个分支的可能的返回值都必须是相同类型let condition = true;let num = if condition { 5 } else { 6 };println!("The value of num is: {}", num);
}

循环

如果我们想要某一段代码根据我们的约定执行多少次,我们就需要依靠循环这个工具来实现。
在其他编程语言当中,如果我们想要编写一个死循环,通常使用while(1) while(true)等等形式。在rust当中如果可以借助loop关键字来实现。

// 这段代码会一直执行,直到我们手动终止
loop{}

和其他语言类似,如果我们想要从loop中获得返回值我们可以通过breakcontinue关键字来帮助我们完成此需求。
不同的是break会跳出当前循环;而continue会跳过当前循环,执行下一次循环(嵌套循环时会用到)。
示例代码:

    // loop循环let mut count: u8 = 0;let result: u8 = loop {count += 1;if count == 10 {break count * 2; // 使用break关键字跳出循环}};println!("The result is {}", result); // 20

多层循环嵌套时,我们可能需要通过一个标签名来帮助我们跳出循环。
rust的循环标签名定义形式我觉得很怪异。。。。hh
定义形式:'label_name:loop{} 跳出时通过break 'label_name

    // 循环嵌套,通过循环标签消除多个循环间的歧义let mut cc_count: u8 = 0;// 指定一个 循环标签'counting_up: loop {println!("cc_count = {cc_count}");let mut remaining: u8 = 10;loop {println!("remaining = {remaining}");if remaining == 9 {break;}if cc_count == 2 {break 'counting_up; // 通过指定标签名跳出最外层循环}remaining -= 1;}cc_count += 1;}println!("End cc_count = {cc_count}");

while

while循环很方便,我们经常会使用到它。当满足某个条件时,while循环会一直执行下去,直到不满足该条件才会调用break退出循环。有时while循环的代码和使用for循环编写的代码类似,我们常根据实际情况使用某种形式。
语法:while bool {// execute something}
示例代码:

    // while循环// 当条件为true,执行循环;当条件为false,调用break中止循环let mut dd_count: u8 = 5;while dd_count != 0{println!("dd_count = {dd_count}");dd_count-=1;}println!("dd_count is LIFTOFF!!!");

for

for循环是我们最常用的循环形式之一,它在每个编程语言当中都非常常见。
rust中通过for in的方式来实现循环遍历。for循环还包括迭代器,后续学到时再做阐述...

示例代码:

    // for in循环// 通过for循环遍历输出数组元素let arr_data:[u8;5] = [1, 2, 3, 4, 5];for item in arr_data{print!("{} ", item);}println!();// 利用for循环实现倒计时for range_i in (1..10).rev() {println!("{range_i}!");}println!("LIFTOFF!!!");

这里只是简要说明了loop、while、for的简单使用,如果想要更多例子可以参考rust官方的例子或者上网搜索更多....

官网例子:https://doc.rust-lang.org/rust-by-example/flow_control/for.html

http://www.jsqmd.com/news/32447/

相关文章:

  • 2025 年 11 月衬四氟反应釜,化工反应釜,夹套反应釜厂家最新推荐,聚焦资质、案例、售后的五家机构深度解读!
  • 2025年升降舞台机械厂家权威推荐榜单:移动舞台机械/舞台机械方案/异形舞台机械源头厂家精选
  • 一文读懂激活函数与损失函数的区别
  • 2025年河北公司注册代理记账服务权威推荐榜单:河北税务咨询/河北会计税务服务商/河北营业执照年检服务精选
  • 为运动注入智能:结合 AI、立体视觉与边缘计算
  • 工业自动化通信之西门子CPU连接资源
  • AI+ Smali 等于 破解插件
  • Oracle性能优化:latch free-SQL memory manager latch等待
  • 2025 年 11 月电能质量分析仪厂家权威推荐榜:A类/B类/动态/三相电能质量监测仪、在线监测装置及系统精选
  • 2025 年 11 月电气防火保护器厂家推荐排行榜,电弧故障保护器/断路器,防火限流保护器,故障电弧探测器,单相/三相保护装置专业选购指南
  • 如何将一个html以host方式运行跑起来
  • 2025年pc耐力板定制厂家权威推荐榜单:采光耐力板/pc实心板/pc阻燃板源头厂家精选
  • 原型污染攻击工具揭秘:Prototype Pollution Gadgets Finder
  • 2025 年 11 月箱包五金电镀加工,链条电镀加工,饰品电镀加工厂家最新推荐,产能、专利、环保三维数据透视!
  • IBM 3650M
  • 如何在Jmeter中测试接口查询天气
  • 2025 年胰岛素泵厂家排行榜权威发布,实力厂家技术与口碑全景解析及选购指南软针植入 / 平衡式留置针 / 无异物感胰岛素泵公司推荐
  • 2025年型材机加工生产厂家权威推荐榜单:硅溶胶精密铸造/砂铸件/五金铸件精加工源头厂家精选
  • 2025 年 11 月五金电镀加工,电子产品电镀加工,东莞电镀加工厂家最新推荐,产能、专利、环保三维数据透视!
  • 我用 Docker 部署 RabbitMQ 踩了 3 个大坑,10 分钟搞定的记录
  • Ubuntu 24.04.2 LTS 中修改远程桌面(xrdp)的默认端口
  • 在远程 Ubuntu 24.04.2 LTS 上安装并运行图形界面
  • 2025年安全检测检验公司排行榜单前十名推荐
  • 2025年安全检测检验公司排行榜单权威发布
  • 常见的命名规范
  • 2025年边坡防护网优质厂家权威推荐榜单:主动防护网/被动防护网/绞索网源头厂家精选
  • 2025年冷链食品冷库供货厂家权威推荐榜单:食品级冷库/食品速冻冷库/保鲜食品冷库源头厂家精选
  • 【触想智能】工控一体机在智慧农业应用领域具有巨大的潜力和发展空间
  • Day31-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\Regex-正则表达式+爬虫
  • 在 Ubuntu 中创建一个拥有 root 权限的 mjroot 用户并禁用root用户