Menu
CoddyTech

If-else

Thuộc phần Kiến thức nền tảng trong hành trình Rust của Coddy. Bài học 25 trên 75.

if cho phép chúng ta chạy một đoạn code nhất định nếu điều kiện được đáp ứng, nhưng nếu điều kiện không được đáp ứng thì sao?

Để làm điều đó, ta dùng câu lệnh else:

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

Trong ví dụ trên, age nhỏ hơn 18, nghĩa là chương trình sẽ chạy phần code trong else và status sẽ chứa "Young".

Ta thậm chí có thể làm cho ví dụ sâu sắc hơn bằng cách dùng câu lệnh else if:

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

Ở đây, chương trình kiểm tra xem tuổi có nhỏ hơn 18 không. Nếu không, chương trình sẽ tiếp tục kiểm tra điều kiện tiếp theo và xem tuổi có nằm trong khoảng từ 18 đến 65 không. Nếu điều kiện đó cũng không thỏa mãn, chương trình sẽ đặt status thành "Old".

Ta có thể thêm bao nhiêu câu lệnh else if tùy ý:

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

Thử thách

Người mới

Bạn được cung cấp một đoạn code nhận đầu vào là một số cho biết tốc độ gió và lưu số đó vào biến có tên wind.

Lưu ý: trong các bài học tiếp theo, chúng ta sẽ học cách nhận đầu vào từ người dùng. Hiện tại, bạn chỉ cần giữ nguyên những dòng đầu tiên.

 

Nhiệm vụ của bạn là khởi tạo biến status dựa trên các điều kiện sau:

  • "Calm" nếu wind nhỏ hơn 8,
  • "Breeze" nếu wind nằm trong khoảng từ 8 đến 31 (bao gồm cả 8 và 31).
  • "Gale" nếu wind nằm trong khoảng từ 32 đến 63 (bao gồm cả 32 và 63)
  • "Storm" trong các trường hợp còn lại

Xem các test case để biết tất cả đầu vào và đầu ra dự kiến

Tự làm thử

use std::io;

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();
    let wind: i32 = input.trim().parse().unwrap();
    // Thay dòng bên dưới bằng biểu thức (expression) if-else để gán giá trị cho status dựa trên wind
    let status = "unset";
    
    // Đừng thay đổi dòng bên dưới
    println!("status = {}", status);
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch Rust online