• Rust流程控制


    流程控制
    条件判断

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

    三种条件判断

    • if 满足条件,执行功能
    • if-else 满足指定条件,执行某个功能,不满足条件执行另一个功能
    • if-else if-else 用于多个条件分支执行对应的功能的程序逻辑
    if条件判断
    if conditional_test {
        // true执行
    }
    
    • 1
    • 2
    • 3

    Rust不会自动将非布尔值转换为布尔值,必须显示使用布尔值作为表达式的值

    if-else条件判断
    if conditional_test {
        // true执行
    }else{
        // false 执行
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    if-else if-else条件判断
    if conditional_test_1 {
        
    }else if conditional_test_2{
        
    }else{
        
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    循环

    在满足指定条件的情况下,重复执行一段代码

    三种循环

    • 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的值
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    while循环

    while循环在每次执行代码前进行条件判断,只要条件表达式的值为true就会重复执行代码。

    let mut count = 0;
    let mut counter = 0;
    while count != 10 {
        count += 1;
        counter = count *2;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    for循环

    for循环使用for … in … 语法格式,重复执行指定次数的循环。

    因其安全性和简洁性,常用于对范围类型或者集合类型的所有元素执行指定的操作

    let mut counter = 0;
    for count in 1..=10 {
        counter = count *2;
    }
    
    • 1
    • 2
    • 3
    • 4
    continue 和 break 语句

    continue 和 break都是用于循环控制的语句。

    • break 直接退出循环,不再执行循环体内的任何代码。
    • continue 退出本次循环,不再执行循环体continue之后的代码,然后再次条件判断,开始新一轮循环
    for i in 0..10 {
        for i== 0  || i == 4 {
            continue;
        }
        if i== 6 {
            break;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    match模式匹配

    检查当前值是否匹配一系列模式中的某一个。

    模式可以由字面量、变量、通配符和其他内容构成。

    每一个模式都是一个分支,程序根据匹配的模式执行相应的代码。

    Rust 要求match模式匹配是穷尽式的,即必须穷举所有的可能,否则会导致程序错误。

    通配符"_"会匹配没有指定的所有可能的模式。

    let age = 6;
    match age{
        0 => println!("0"),
        1..=2 => println!("1..2"),
        _ => (),
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    if let 和 while let 模式匹配

    在某些场景中可以替代match模式匹配来简化代码

    可以将if let 视为match的语法糖,仅当匹配某一模式时执行代码,并忽略其他所有模式

    match value{
        Some(7) => println!("seven"),
        _ => (),
    }
    
    • 1
    • 2
    • 3
    • 4

    使用if let 可以简化

    if let Some(7) = value {
        println!("seven");
    }
    
    • 1
    • 2
    • 3

    while let 后紧跟的表达式中,左侧为匹配模式,右侧为要匹配的值,两者通过=分隔。

    let mut vec = vec![1,2,3,4];
    loop{
        match vec.pop(){
            Some(value) => println!("{}",value),
            None => break,
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    let mut vec = vec![1,2,3,4];
    while let Some(value) = vec.pop(){
        println!("{}",value);
    }
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    数字化转型的必备工具:智能呼叫中心系统的应用
    优化算法|MOAVOA:一种新的多目标人工秃鹰优化算法(Matlab代码实现)
    垃圾分类资讯易语言代码
    GPU不够用:语言模型的分布式挑战
    python中使用matplotlib绘图
    SAP中应用角度展示产成品不同工艺路线下的期间产量
    关于Chrome DevTool
    SpringMVC-SSM整合/分页插件PageHelper案例
    ip地址转化
    力扣(203.1)补9.2
  • 原文地址:https://blog.csdn.net/first_bug/article/details/127860999