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);
}
相关文章
|
4月前
|
Rust Java 编译器
【一起学Rust | 基础篇】rust函数与流程控制详解
【一起学Rust | 基础篇】rust函数与流程控制详解
49 0
【一起学Rust | 基础篇】rust函数与流程控制详解
|
Rust Java C语言
【RUST学习日记】第17课 流程控制
【RUST学习日记】第17课 流程控制
|
Rust JavaScript 编译器
Rust 流程控制和函数
本文介绍了 Rust 中的流程控制语句,主要包括 if 条件判断、for 循环、loop 循环、while 循环。同时也会然后 Rust 函数的使用。
117 0
|
8天前
|
Rust 安全 程序员
|
8天前
|
Rust 安全 程序员
Rust vs Go:解析两者的独特特性和适用场景
在讨论 Rust 与 Go 两种编程语言哪种更优秀时,我们将探讨它们在性能、简易性、安全性、功能、规模和并发处理等方面的比较。同时,我们看看它们有什么共同点和根本的差异。现在就来看看这个友好而公平的对比。
|
9月前
|
Rust Go C++
Rust vs Go:常用语法对比(十三)(1)
Rust vs Go:常用语法对比(十三)(1)
63 0
|
9月前
|
Rust Go C++
Rust vs Go:常用语法对比(七)(1)
Rust vs Go:常用语法对比(七)(1)
48 0
|
9月前
|
Rust Go C++
Rust vs Go:常用语法对比(十三)(2)
Rust vs Go:常用语法对比(十三)(2)
74 1
|
9月前
|
Rust Go C++
Rust vs Go:常用语法对比(十二)(2)
Rust vs Go:常用语法对比(十二)(2)
59 0
|
9月前
|
Rust Go C++
Rust vs Go:常用语法对比(十二)(1)
Rust vs Go:常用语法对比(十二)(1)
64 0