Nhãn vòng lặp
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 42 trên 75.
Nhãn trong Rust giúp bạn thoát khỏi hoặc tiếp tục một vòng lặp cụ thể khi các vòng lặp lồng nhau. Thêm 'label: trước một vòng lặp để gắn nhãn cho vòng lặp đó.
Ví dụ:
'outer: for i in 1..=3 {
'inner: for j in 1..=3 {
if i * j > 5 {
break 'outer;
// This will break the outer loop
}
println!("({}, {})", i, j);
}
}
Trong ví dụ này, ta có hai vòng lặp lồng nhau được gắn nhãn 'outer và 'inner. Khi tích của i và j lớn hơn 5, câu lệnh break 'outer; được thực thi, thoát khỏi vòng lặp bên ngoài. Đầu ra của đoạn code này là:
(1, 1)
(1, 2)
(1, 3)
(2, 1)
(2, 2)Tương tự, bạn có thể dùng continue 'label; để tiếp tục đến lần lặp tiếp theo của vòng lặp được chỉ định. Ví dụ:
'outer: for i in 1..=3 {
'inner: for j in 1..=3 {
if i == j {
continue 'outer;
// This will continue the outer loop
}
println!("({}, {})", i, j);
}
}Trong trường hợp này, khi i bằng j, câu lệnh continue 'outer; được thực thi, bỏ qua phần còn lại của vòng lặp bên trong và tiếp tục với lần lặp tiếp theo của vòng lặp bên ngoài. Đầu ra sẽ là:
(2, 1)
(3, 1)
(3, 2)Thử thách
Người mớiViết một chương trình Rust sử dụng vòng lặp có nhãn để tìm cặp số đầu tiên (i, j) sao cho tổng của chúng lớn hơn 10 và tích của chúng là bội số của 12 (tích chia hết cho 12). Chương trình cần lặp qua i từ 1 đến 20 và j từ 1 đến 20.
Khi tìm thấy cặp số đó, hãy in cặp số theo định dạng (i, j) và thoát khỏi vòng lặp bên ngoài.
Tự làm thử
fn main() {
'outer: for i in 1..=20 {
for j in 1..=20 {
// Your logic here
break 'outer;
}
}
}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
5Các toán tử phần 2
Các toán tử logic phần 1Các toán tử logic phần 2Ôn tập: logic đơn giảnCác toán tử logic phần 33Biến phần 2
Khai báo kiểu dữ liệuQuy ước đặt tênSuy luận kiểu dữ liệuÔn tập: Khởi tạo biếnÉp kiểu dữ liệu9Vòng lặp
Vòng lặp for qua chuỗiVòng lặp whileBreakContinueVòng lặp lồng nhauNhãn vòng lặpVòng lặp vô hạnÔn tập: Đầu vào động12Kiến thức cơ bản về mảng
Khai báo mảngMảng làm tham sốTruy cập phần tửChỉnh sửa mảngÔn tập: In mảng đẹp mắtTự luyện tập: Trình biên dịch Rust online