Menu
CoddyTech

If-Else

本课属于 Coddy Rust 学习旅程的“基础知识”单元。第 25 课,共 75 课。

如果满足某个条件,if 可以让我们执行特定的代码。但如果条件不满足时,我们想执行其他内容,该怎么办?

为此,我们可以使用 else 语句:

let age: i32 = 15;
let status = if age >= 18 {
    "Adult"
} else {
    "Young"
};

在上面的示例中,age 小于 18,这意味着程序会进入 else 代码块,status 的值将是 "Young"。

我们甚至可以用 else if 语句让判断更加深入:

let age: i32 = 68;
let status = if age < 18 {
    "Young"
} else if age >= 18 && age <= 65 {
    "Adult"
} else {
    "Old"
};

这里会检查 age 是否小于 18。如果不是,就会继续检查下一个条件,判断 age 是否在 18 到 65 之间。如果也不满足这个条件,就会将 status 设置为 "Old"。

我们可以根据需要添加任意多个 else if 语句:

if condition1 {
    code;
} else if condition2 {
    code;
} else if condition3 {
    code;
}
...
challenge icon

挑战

入门

给定一段代码,它会读取一个表示风速的数字作为输入,并将其存储在名为 wind 的变量中。

注意:我们会在后续课程中学习如何获取用户输入。目前先不要改动前几行。

 

你的任务是根据以下条件初始化变量 status:

  • 如果 wind 小于 8,则设为 "Calm";
  • 如果 wind 在 8 到 31 之间(包括 8 和 31),则设为 "Breeze"。
  • 如果 wind 在 32 到 63 之间(包括 32 和 63),则设为 "Gale"
  • 否则设为 "Storm"

查看测试用例,了解所有输入和预期输出

亲手试试

use std::io;

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();
    let wind: i32 = input.trim().parse().unwrap();
    // 将下面这行替换为 if-else 表达式,根据 wind 给 status 赋值
    let status = "unset";
    
    // 不要修改下面这行
    println!("status = {}", status);
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Rust 在线编译器