
1. Cấu trúc If cơ bản
Dùng để thực thi một đoạn mã nếu điều kiện là đúng (`true`).
let x = 10;
if x > 5 {
println!("x lớn hơn 5");
}
—
2. Câu lệnh If…Else
Nếu điều kiện không đúng, bạn có thể dùng `else` để chạy đoạn mã khác.
let age = 16;
if age >= 18 {
println!("Bạn đủ tuổi bầu cử.");
} else {
println!("Bạn chưa đủ tuổi bầu cử.");
}
—
3. Câu lệnh Else If
Dùng để kiểm tra nhiều điều kiện khác nhau theo thứ tự từ trên xuống dưới.
let score = 85;
if score >= 90 {
println!("Hạng: A");
} else if score >= 80 {
println!("Hạng: B");
} else {
println!("Hạng: F");
}
—
4. Sử dụng If như một biểu thức (Expression)
Đây là một tính năng cực kỳ mạnh mẽ của Rust. Bạn có thể gán kết quả của một câu lệnh `if` trực tiếp cho một biến.
let time = 20;
let greeting = if time < 18 {
"Chào buổi sáng"
} else {
"Chào buổi tối"
};
println!("{}", greeting); // Kết quả: Chào buổi tối
⚠️ Một số lưu ý quan trọng:
- Phải có `else`: Khi dùng `if` như biểu thức gán giá trị, bạn bắt buộc phải có `else` để đảm bảo biến luôn nhận được một giá trị trong mọi tình huống.
- Cùng kiểu dữ liệu: Giá trị trả về ở nhánh `if` và `else` phải có cùng kiểu dữ liệu (ví dụ: cùng là chuỗi hoặc cùng là số). Bạn không thể trả về “Thành công” ở `if` và số `1` ở `else`.
—
5. Thay thế cho toán tử ba ngôi
Nếu bạn đã quen với toán tử ba ngôi (`condition ? a : b`) trong C++ hay Java, thì trong Rust, bạn sẽ dùng `if…else` trên một dòng để đạt được kết quả tương tự:
let number = 5;
let result = if number % 2 == 0 { "Chẵn" } else { "Lẻ" };
—
Lời kết Bài 5
`if…else` giúp chương trình của bạn có khả năng ra quyết định. Ở bài tiếp theo, chúng ta sẽ làm quen với Match – một công cụ so khớp mẫu cực kỳ lợi hại, được coi là phiên bản “nâng cấp” của `switch..case` trong các ngôn ngữ khác.
Hẹn gặp lại các bạn!
Leave a comment