学习Rust的第5天:控制流

Control flow, as the name suggests controls the flow of the program, based on a condition.
控制流,顾名思义,根据条件控制程序的流。

If expression If表达式

An if expression is used when you want to execute a block of code if a condition is met.
当您希望在满足条件的情况下执行代码块时,将使用 if 表达式。

Example 例如

fn main(){let age: u32 = 17;if age > 18{println!("You are an adult");}
}

This program will check if the age is greater than 18 or not. if yes it will output “You are an adult”.
该程序将检查年龄是否大于18岁。 if 是的,它会输出“你是一个成年人”。

Now what if I want to get an output when the condition is not met?
现在,如果我想在条件不满足时获得输出,该怎么办?

Else expression Else表达式

An else expression is used to run a block of code when a certain condition is not met.
else 表达式用于在不满足特定条件时运行代码块。

fn main(){let age: u32 = 17if age>18{println!("You are an adult");}else{println!("You are not an adult");}
}

This program will check if the age is greater than 18 or not. if yes it will output “You are an adult” else it will output “You are not an adult”.
该程序将检查年龄是否大于18岁。 if 是的,它将输出“你是一个成年人”,否则它将输出“你不是一个成年人”。

Else If Expression Else If表达式

An else if expression can be used to check for multiple conditions. for example :
else if 表达式可用于检查多个条件。例如:

fn main(){let number = 92;if number % 9 == 0{println!("number is divisible by 9");} else if number % 5 == 0{println!("number is divisible by 5");}else if number % 3 == 0{println!("number is divisible by 3");}else{println!("number is not divisible by 9, 5, 3");}
}

Loops 环

Loops are used to go over through a block of code till explicitly specified to stop or if a certain condition is met.
循环用于遍历代码块,直到明确指定停止或满足特定条件。

loop keyword  loop 关键字

The loop keyword tells rust to run a block of code till told to stop using the break keyword
loop关键字告诉rust运行一段代码,直到停止使用 break 关键字

fn main() {let mut i: u32 = 0;let mut j: i32 = 10;
  // labelled infinite loop with break statements'counting_down: loop {if j >= 0 {println!("{}", j);j -= 1;} else {println!("counting down loop complete");break 'counting_down;}}
}

Explanation: 说明:

  • The main function is the entry point of the Rust program.
    main 函数是Rust程序的入口点。
  • j of type i32 (signed 32-bit integer) initialized with the value 10.
    类型 i32 (有符号32位整数)的 j ,初始化为值10。
  • The code enters a labeled infinite loop marked with the label 'counting_down.
    代码进入一个标记为 'counting_down 的带标签的无限循环。
  • Inside the loop, there’s a conditional statement checking if j is greater than or equal to 0.
    在循环内部,有一个条件语句检查 j 是否大于或等于0。
  • If true, it prints the current value of j using println! and decrements j by 1.
    如果为true,则使用 println! 打印 j 的当前值,并将 j 递减1。
  • If false (when j is less than 0), it prints a message and breaks out of the loop labeled 'counting_down.
    如果为false(当 j 小于0时),它将打印一条消息并跳出标记为 'counting_down 的循环。
  • The loop continues indefinitely until the break 'counting_down; statement is executed.
    循环将无限期地继续,直到执行 break 'counting_down; 语句。
  • The label 'counting_down is used to specify which loop to break out of, especially when dealing with nested loops.
    标签 'counting_down 用于指定要中断哪个循环,特别是在处理嵌套循环时。

While loops While循环

while loop repeatedly executes a block of code as long as a specified condition is true.
只要指定的条件为真, while 循环就会重复执行代码块。

Example: 范例:

fn main(){let mut num: u8 = 4;while num!=0 {println!("{}",num);num-=1;}
}

Explanation: 说明:

  • A mutable variable num is declared and initialized with the value 4. It has the type u8 (unsigned 8-bit integer).
    声明了一个可变变量 num ,并使用值4进行初始化。它的类型为 u8 (无符号8位整数)。
  • The code enters a while loop with the condition num != 0.
    代码进入一个带有条件 num != 0 的 while 循环。
  • Inside the loop, it prints the current value of num using println!.
    在循环内部,它使用 println! 打印 num 的当前值。
  • It then decrements the value of num by 1 with the num -= 1; statement.
    然后使用 num -= 1; 语句将 num 的值减1。
  • The loop continues as long as the condition num != 0 is true.
    只要条件 num != 0 为真,循环就会继续。
  • The program prints the values of num in descending order from its initial value (4) until it becomes 0.
    程序按从初始值(4)到0的降序打印 num 的值。
  • Once num becomes 0, the loop exits, and the program continues to any subsequent code outside the loop.
    一旦 num 变为0,循环退出,程序继续执行循环外的任何后续代码。

For Loops for循环

for loop iterates over a range, collection, or iterator, executing a block of code for each iteration.
for 循环遍历范围、集合或迭代器,每次迭代执行一个代码块。

Examples: 示例如下:

fn main(){//for loops in arrayslet array: [u8; 10] = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100];println!("For loop to access array");for item in array {println!("{}", item);}
  //for loops in rangesprintln!("For loops in range ");for number in 0..=5 {println!("{number}");}println!("For loops in range (reversed)");for number in (0..=5).rev() {println!("{number}");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/823155.shtml

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

相关文章

自定义vue-cli 实现预设模板项目

模板结构 主要包括四个部分: preset.jsonprompts.jsgenerator/index.jstemplate/ 项目最终结构 preset.json preset.json 中是一个包含创建新项目所需预定义选项和插件的 JSON 对象,让用户无需在命令提示中选择它们,简称预设;…

openGauss学习笔记-265 openGauss性能调优-TPCC性能调优测试指导-操作系统配置

文章目录 openGauss学习笔记-265 openGauss性能调优-TPCC性能调优测试指导-操作系统配置265.1安装openEuler操作系统265.2 修改操作系统内核PAGESIZE为64KB。265.3 关闭CPU中断的服务irqbalance openGauss学习笔记-265 openGauss性能调优-TPCC性能调优测试指导-操作系统配置 本…

2011年认证杯SPSSPRO杯数学建模C题(第二阶段)你的爱车入保险了吗全过程文档及程序

2011年认证杯SPSSPRO杯数学建模 C题 你的爱车入保险了吗 原题再现: 近几年,国内汽车销售市场异常火爆,销售量屡创新高。车轮上的世界,保险已经与我们如影随形。汽车保险,简称车险,是指对机动车辆由于自然…

计算机考研都将采用408!?

这个根本不可能,高考还没做到全国统一考试呢 每个学校对于计算机招生的需求是不一样的,比如清华大学,专业课912,算的上是最难的计算机专业课了,那他为什么搞这么难啊,还不是因为那群敢考清华的卷王们太变态…

Python数据结构【二】查找

前言 可私聊进一千多人Python全栈交流群(手把手教学,问题解答) 进群可领取Python全栈教程视频 多得数不过来的计算机书籍:基础、Web、爬虫、数据分析、可视化、机器学习、深度学习、人工智能、算法、面试题等。 🚀&a…

C++奇迹之旅:构造函数

文章目录 📝类的6个默认成员函数🌠 构造函数🌉 概念🌉特性🌉三种默认构造函数 🚩总结 📝类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗&am…

【重磅开源】一款可以生成SpringBoot+Vue代码的轻量级项目

基于SpringBootVue3开发的轻量级快速开发脚手架 🍁项目简介 一款通用的前、后端项目模板 一款快速开发管理系统的项目 一款可以生成SpringBootVue代码的项目 一款持续迭代的开源项目 一个程序员的心血合集 度过严寒,终有春日&#xff…

Nginx内存池相关源码剖析(一)总览

剖析nginx的内存池源码,讲解原理实现以及该内存池设计的应用场景 介绍 Nginx内存池是Nginx为了优化内存管理而引入的一种机制。在Nginx中,每个层级(如模板、TCP连接、HTTP请求等)都会创建一个内存池进行内存管理。当这些层级的…

Linux下redis的安装过程与配置详细教程【5.0.5为例子】

Linux下redis的安装过程与配置方法【5.0.5为例子】 下载redis redis下载地址 https://download.redis.io/releases/ 也可以自行去官网下载 提示:此处安装的为redis-5.05的版本 上传redis安装包(我的安装目录为/data/tool/redis-5.0.5) 创建目录/data/local/tool并…

Day20-【Java SE高级】单元测试 反射 注解 动态代理

一、单元测试 就是针对最小的功能单元(方法),编写测试代码对其进行正确性测试。 1. 咱们之前是如何进行单元测试的?有啥问题? 只能在main方法编写测试代码,去调用其他方法进行测试。无法实现自动化测试,一个方法测试失败,可能…

Day 23 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树 总结篇

修剪二叉搜索树 给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。 ​ 最直接的想法&#xff0…

最强解释!Python 包的依赖管理,有解了!

之前一直比较抵触用 Python ,很大一部分原因是觉得 Python 项目的环境管理比较混乱。Node.js 有 Npm 包管理工具,通过 package.json 配置项目依赖,最多再通过 nvm 来进行环境切换;Java 有 Maven Gradle 来进行包管理和项目依赖配置…

今天刷两题(day2)

题目一:最长公共前缀 题目描述: 给你一个大小为 n的字符串数组 strs ,其中包含n个字符串 , 编写一个函数来查找字符串数组中的最长公共前缀,返回这个公共前缀。输入输出描述: 输入:"abca","…

MyBatis 源码分析 - SQL 的执行过程

MyBatis 源码分析 - SQL 的执行过程 * 本文速览 本篇文章较为详细的介绍了 MyBatis 执行 SQL 的过程。该过程本身比较复杂,牵涉到的技术点比较多。包括但不限于 Mapper 接口代理类的生成、接口方法的解析、SQL 语句的解析、运行时参数的绑定、查询结果自动映射、延…

C++ 秋招必知必会(数据结构与算法:下)

20. 二叉树的定义与操作 二叉树(binary tree)是一种非线性数据结构,代表着祖先与后代之间的派生关系,体现着“一分为二”的分治逻辑 与链表类似,二叉树的基本单元是节点,每个节点包含:值、左子…

MYSQL5.7详细安装步骤

MYSQL5.7详细安装步骤: 0、更换yum源 1、打开 mirrors.aliyun.com,选择centos的系统,点击帮助 2、执行命令:yum install wget -y 3、改变某些文件的名称 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base…

储能的全生命周期成本即平准化度电成本的计算方法及python实践

1. 平准化度电成本(LCOE)是一种衡量电力项目经济性的指标 LCOE(Levelized Cost of Energy,)的概念最早由美国国家可再生能源实验室(NREL)在1995年提出,它是通过将一个项目生命周期内的所有成本…

黑马头条项目结构

微服务架构具有许多优点,其中一些主要优点包括: 松耦合性:每个微服务都是独立的,可以独立部署、独立扩展和独立更新,这种松耦合性使得系统更加灵活,易于维护和演化。 技术多样性:由于每个微服务…

基于springboot实现知识管理系统项目【项目源码+论文说明】

基于springboot实现知识管理系统演示 摘要 随着信息互联网信息的飞速发展,无纸化作业变成了一种趋势,针对这个问题开发一个专门适应师生作业交流形式的网站。本文介绍了知识管理系统的开发全过程。通过分析企业对于知识管理系统的需求,创建了…

2024年4月13日美团春招实习试题【第四题:乘积因子数】-题目+题解+在线评测【二分】

2024年4月13日美团春招实习试题【第四题:乘积因子数】-题目题解在线评测【二分】 题目描述:输入描述输出描述样例 解题思路一:python解题思路二:c解题思路三:0 题目描述: 塔子哥拿到了一个数组,她有q次查询…