Luồng điều khiển trong Rust: Rẽ nhánh và vòng lặp
Dùng if/else như biểu thức, lặp bằng loop, while và for, và thấy luồng điều khiển Rust tạo ra giá trị ra sao.
Bài thứ ba trong loạt Rust cơ bản. Trong Rust, luồng điều khiển không chỉ là chọn đường — nhiều cấu trúc là biểu thức tạo ra giá trị.
If và else#
let score = 85;
if score >= 90 {
println!("Grade: A");
} else if score >= 70 {
println!("Grade: B");
} else {
println!("Grade: C");
}rustĐiều kiện phải là bool — Rust không ép số thành boolean.
If là biểu thức#
Mỗi nhánh có thể trả về một giá trị. Các nhánh phải cùng kiểu:
let grade = if score >= 90 { "A" } else { "B" };
println!("{grade}");rustCách này thường gọn hơn một phép gán riêng.
Loop#
loop lặp vô hạn cho đến khi break:
let mut counter = 0;
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2; // giá trị sau break thành kết quả
}
};
println!("{result}"); // 20rustWhile#
let mut n = 3;
while n > 0 {
println!("{n}");
n -= 1;
}rustFor với range#
for trên range là cách lặp chuẩn mực:
for i in 0..5 {
println!("{i}");
}rust0..5 loại giá trị cuối; 0..=5 gồm cả giá trị cuối. Bạn cũng lặp được trên collection:
let names = ["Ada", "Grace", "Linus"];
for name in names {
println!("{name}");
}rustBreak và continue#
breakthoát vòng lặp ngay lập tức.continuebỏ qua phần còn lại của vòng hiện tại.
for i in 0..10 {
if i % 2 == 0 {
continue;
}
if i > 7 {
break;
}
println!("{i}");
}
// in ra: 1 3 5 7rustKết luận#
Luồng điều khiển của Rust giàu biểu cảm và an toàn: không bất ngờ kiểu truthy/falsy, và nhánh có thể tạo giá trị. Bài tiếp theo trong loạt: hàm.