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);
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

暴风雨中的白杨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值