Rust基础语法(条件控制语句if、loop、while、for)

2022-11-28 15:43:10 浏览数 (1)

if表达式

if 表达式允许根据条件执行不同的代码分支。你提供一个条件并表示 “如果条件满足,运行这段代码;如果条件不满足,不运行这段代码。” 无返回值执行:

代码语言:javascript复制
fn main() {
    let number = 6;

    if number < 10 {
        println!("condition was true");
    } else {
        println!("condition was false");
    }
}

输出:

condition was true

if 条件表达式的分支必须返回同一个类型的值。 有返回值执行:

代码语言:javascript复制
fn main(){
    let n = 13;
    // if 表达式可以用来赋值
    let big_n = if n < 10 && n > -10 {
        // 分支必须返回同一个类型的值
        10 * n
    } else {
        // 自动截取
        n / 2
    };
    assert_eq!(big_n, 6);

}

注意:Rust 中的条件表达式必须是 bool 类型,例如下面的程序是错误的

代码语言:javascript复制
fn main() {
    let number = 3;
    if number {   // 报错,expected `bool`, found integerrustc(E0308)
        println!("Yes");
    }
}

使用循环重复执行

多次执行同一段代码是很常用的,Rust 为此提供了多种 循环loops)。一个循环执行循环体中的代码直到结尾并紧接着回到开头继续执行。为了实验一下循环,让我们新建一个叫做 loops 的项目。 Rust 有三种循环:loop、while 和 for。可以使用 break 关键字来告诉程序何时停止循环。循环中的 continue 关键字告诉程序跳过这个循环迭代中的任何剩余代码,并转到下一个迭代。

loop

loop 关键字告诉 Rust 一遍又一遍地执行一段代码直到你明确要求停止。Rust 提供了一种从代码中跳出循环的方法。loop 循环,相当于一个 while true,需要程序自己 break:

代码语言:javascript复制
fn main() {
    let mut counter = 0;

    let result = loop {
        counter  = 1;

        if counter == 10 {
            break counter * 2;
        }
    };

    println!("The result is {result}");
}

输出:

The result is 20

while条件循环

在程序中计算循环的条件也很常见。当条件为真,执行循环。当条件不再为真,调用 break 停止循环。这个循环类型可以通过组合 loop、if、else 和 break 来实现;如果你喜欢的话,现在就可以在程序中试试。 示例 : 使用了 while:程序循环三次,每次数字都减一。接着,在循环结束后,打印出另一个信息并退出。

代码语言:javascript复制
fn main() {
    let mut number = 3;

    while number != 0 {
        println!("{number}!");

        number -= 1;
    }

    println!("LIFTOFF!!!");
}

输出:

3! 2! 1! LIFTOFF!!!

for 循环

for 循环是最常用的循环结构,常用来遍历一个线性数据据结构(比如数组)。for 循环遍历数组:

代码语言:javascript复制
fn main() {
    let a = [10, 20, 30, 40, 50];
    for i in a.iter() {
        println!("value is : {}", i);
    }
}

输出:

value is : 10 value is : 20 value is : 30 value is : 40 value is : 50

参考:https://kaisery.github.io/trpl-zh-cn/

本文内容到此结束了, 如有收获欢迎点赞

0 人点赞