Rust流程控制

简介: Rust流程控制
流程控制
条件判断

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

三种条件判断

  • 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);
}
相关文章
|
6月前
|
Rust Java 编译器
【一起学Rust | 基础篇】rust函数与流程控制详解
【一起学Rust | 基础篇】rust函数与流程控制详解
90 0
【一起学Rust | 基础篇】rust函数与流程控制详解
|
Rust Java C语言
【RUST学习日记】第17课 流程控制
【RUST学习日记】第17课 流程控制
|
Rust JavaScript 编译器
Rust 流程控制和函数
本文介绍了 Rust 中的流程控制语句,主要包括 if 条件判断、for 循环、loop 循环、while 循环。同时也会然后 Rust 函数的使用。
148 0
|
3月前
|
Rust 安全 Go
揭秘Rust语言:为何它能让你在编程江湖中,既安全驰骋又高效超车,颠覆你的编程世界观!
【8月更文挑战第31天】Rust 是一门新兴的系统级编程语言,以其卓越的安全性、高性能和强大的并发能力著称。它通过独特的所有权和借用检查机制解决了内存安全问题,使开发者既能享受 C/C++ 的性能,又能避免常见的内存错误。Rust 支持零成本抽象,确保高级抽象不牺牲性能,同时提供模块化和并发编程支持,适用于系统应用、嵌入式设备及网络服务等多种场景。从简单的 “Hello World” 程序到复杂的系统开发,Rust 正逐渐成为现代软件开发的热门选择。
66 1
|
10天前
|
Rust 安全 Java
探索Rust语言的并发编程模型
探索Rust语言的并发编程模型
|
16天前
|
Rust 安全 区块链
探索Rust语言:系统编程的新选择
【10月更文挑战第27天】Rust语言以其安全性、性能和并发性在系统编程领域受到广泛关注。本文介绍了Rust的核心特性,如内存安全、高性能和强大的并发模型,以及开发技巧和实用工具,展示了Rust如何改变系统编程的面貌,并展望了其在WebAssembly、区块链和嵌入式系统等领域的未来应用。
|
18天前
|
Rust 安全 Java
编程语言新宠:Rust语言的特性、优势与实战入门
【10月更文挑战第27天】Rust语言以其独特的特性和优势在编程领域迅速崛起。本文介绍Rust的核心特性,如所有权系统和强大的并发处理能力,以及其性能和安全性优势。通过实战示例,如“Hello, World!”和线程编程,帮助读者快速入门Rust。
36 1
|
19天前
|
Rust 安全 编译器
编程语言新宠:Rust语言的特性、优势与实战入门
【10月更文挑战第26天】Rust语言诞生于2006年,由Mozilla公司的Graydon Hoare发起。作为一门系统编程语言,Rust专注于安全和高性能。通过所有权系统和生命周期管理,Rust在编译期就能消除内存泄漏等问题,适用于操作系统、嵌入式系统等高可靠性场景。
29 2
|
10天前
|
Rust 安全 前端开发
探索Rust语言的异步编程模型
探索Rust语言的异步编程模型
|
20天前
|
Rust 安全 云计算
Rust语言入门:安全性与并发性的完美结合
【10月更文挑战第25天】Rust 是一种系统级编程语言,以其独特的安全性和并发性保障而著称。它提供了与 C 和 C++ 相当的性能,同时确保内存安全,避免了常见的安全问题。Rust 的所有权系统通过编译时检查保证内存安全,其零成本抽象设计使得抽象不会带来额外的性能开销。Rust 还提供了强大的并发编程工具,如线程、消息传递和原子操作,确保了数据竞争的编译时检测。这些特性使 Rust 成为编写高效、安全并发代码的理想选择。
15 0

相关实验场景

更多