09_Rust中的控制流

本文介绍了Rust编程语言中的控制流结构,包括分支(if表达式、三目运算符和match)和循环(while、loop、for),详细解析了它们的用法和与C语言的异同,特别是match的强大模式匹配功能以及for在遍历容器时的优势。此外,还提到了循环标签的使用,作为类似于C语言goto的控制结构,但更安全。
摘要由CSDN通过智能技术生成

Rust中的控制流


控制流其实说的就是 分支循环

分支

if系列表达式

和C的使用一样,区别就是可以去掉括号,当然留着括号也可以运行通过,但是会有警告,所以为了程序没有警告还是把括号去掉吧,还有一点就是在Rust中的if判断条件中的结果必须是true或false,这一点和C语言不一样,因为在C中非0为真,0为假。例如:

#include <stdio.h>
int main() {
   
    if (6) {
   
        printf("OK!\n");	//C语言执行这句话,因为6非0所以为真
    }
    else {
   
        printf("No!\n");
    }
}
fn main() {
   
    if 6 {
    //Rust语言在这里就报错了,这里跟括号没关系,是编译器识别6是i32类型,但实际应需要bool类型
        printf("OK!\n");
    }
    else {
   
        printf("No!\n");
    }
}

其他就没什么区别了,包括else if的连用和else都和C语言的一样,那就没什么好说的了。

三目运算符

在Rust中没有像C语言一样的三目运算符了,但是可以通过if系列运算符来实现三目运算符的效果。

let number = if condition {
    5 } else {
    "six" };

看代码应该是能理解的,如果不能理解,那兄弟你重修一下C语言吧。

match

Rust版的switch(C语言的分支关键字之一).只能说功能相似,使用起来还是有区别的,要不然为什么要改个名字。

Rust 有一个叫做 match 的极为强大的控制流运算符,它允许我们将一个值与一系列的模式相比较,并根据相匹配的模式执行相应代码。模式可由字面值、变量、通配符和许多其他内容构成;match 的力量来源于模式的表现力以及编译器检查,它确保了所有可能的情况都得到处理。

可以把 match 表达式想象成某种硬币分类器:硬币滑入有着不同大小孔洞的轨道,每一个硬币都会掉入符合它大小的孔洞。同样地,值也会通过 match 的每一个模式,并且在遇到第一个 “符合” 的模式时,值会进入相关联的代码块并在执行中被使用

enum Coin {
   	//一个枚举类型
    Penny,
    Nickel,
    Dime,
    Quarter,
}

fn value_in_cents(coin: Coin) -> u8 {
   
    match coin {
   
        Coin::Penny => 1,
        Coin::Nickel => 5,
        Coin::Dime => 10,
        Coin::Quarter => 25,
    }
}

对应C语言的代码:

enum Coin {
   	//一个枚举类型
    Penny,
    Nickel,
    Dime,
    Quarter,
}

unsigned short value_in_cents(unsigned short coin) {
   
    switch(coin) {
   
        case Coin::Penny: return</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值