blog.dopana

Back

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}");
rust

Cá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}");   // 20
rust

While#

let mut n = 3;
while n > 0 {
    println!("{n}");
    n -= 1;
}
rust

For với range#

for trên range là cách lặp chuẩn mực:

for i in 0..5 {
    println!("{i}");
}
rust

0..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}");
}
rust

Break và continue#

  • break thoát vòng lặp ngay lập tức.
  • continue bỏ 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 7
rust

Kế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.

Tài liệu tham khảo#