探索 Rust:条件和循环

在 Rust 中,流程控制是指通过条件判断、循环来规定代码的执行顺序。

使用 if、else、else if、if let 语句进行条件判断,根据条件执行不同的代码块;

通过 loop、while 和 for 循环来实现重复执行代码的需求;

这些流程控制结构使得 Rust 代码更具灵活性、可读性和安全性。

条件表达式

if 表达式用于根据条件执行特定的代码块。如果条件为真,执行 if 块中的代码,否则跳过。

fn main() {
    let number = 42;

    if number > 50 {
        println!("数字大于50");
    }
}

if-else 表达式在条件为真时执行 if 块,否则执行 else 块中的代码。

fn main() {
    let number = 30;

    if number > 50 {
        println!("数字大于50");
    } else {
        println!("数字不大于50");
    }
}

else if 表达式用于处理多个条件,当第一个条件为假时检查下一个条件。可以链式地使用多个 else if。

fn main() {
    let number = 20;

    if number > 50 {
        println!("数字大于50");
    } else if number > 30 {
        println!("数字大于30但不大于50");
    } else {
        println!("数字不大于30");
    }
}

在 let 语句中使用 if 来进行条件赋值,这被称为“if let”表达式。

fn main() {
    let condition = true;
    let number = if condition { 5 } else { 6 };

    println!("The value of number is: {}", number);
}

在 Rust 中,if 条件表达式的条件必须是一个 bool 类型,而不是直接使用其他类型的零值或非零值进行判断的。

这是因为 Rust 强调在类型安全和表达式的清晰性之间寻求平衡,使用明确的 bool 类型可以避免潜在的混淆和错误。

例如,当条件是 0 时,我们无法确定是一个错误还是一个有效的条件。为了明确意图,Rust 要求使用 true 或 false。

fn main() {
    let condition = 0;

    // 以下代码会导致编译错误,因为条件必须是bool类型
    if condition {
        println!("条件为真");
    } else {
        println!("条件为假");
    }
}

循环

在 Rust 中,loop 是一个无限循环,会一直执行直到遇到 break 语句;

while 是根据条件执行的循环,只要条件为真就一直执行;

for 用于遍历集合(如数组、范围等),每次迭代从集合中取出一个元素执行循环体。

这三种循环结构提供了灵活的方式来控制代码的执行流程。

loop 循环会一直执行,直到遇到 break 语句终止。这种循环适用于需要一直运行的场景,例如事件轮询。

fn main() {
    let mut count: i32 = 0;
    loop {
        println!("当前计数: {}", count);
        if count == 5 {
            break;
        }
        count += 1;
    }
}

while 循环根据条件执行,只要条件为真,循环就会继续执行。

fn main() {
    let mut count: i32 = 0;

    while count < 5 {
        println!("当前计数: {}", count);
        count += 1;
    }
}

for 循环用于遍历集合,例如数组、范围等。它提供了一种简洁的语法来迭代元素。

fn main() {
    let numbers: [i32; 5] = [1, 2, 3, 4, 5];

    for number in numbers.iter() {
        println!("当前数字: {}", number);
    }
}

这里,numbers.iter() 返回一个迭代器,for 循环遍历该迭代器中的每个元素。这是一种常见的遍历集合的方式。

本文为原创文章,未经授权禁止转载本站文章。
原文出处:兰玉磊的个人博客
原文链接:https://www.fdevops.com/2024/01/21/tansuorusttiaojianhexunhuan
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。

(2)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
兰玉磊的头像兰玉磊
上一篇 2023年9月8日
下一篇 2022年8月31日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注