em xin chào các anh chị, em là người mới đang tự học code. Em có mò mẫm về lồng vòng lặp nhưng em không hiểu cách ứng dụng và bản chất của nó. Anh chị có thể chỉ cho em hiểu được không ạ? em xin cám ơn anh chị nhiều.
Lồng vòng lặp phải ứng dụng và hiểu bản chất như thế nào?
Ứng dụng điển hình nhất của lồng các vòng lặp là em đang tương tác, duyệt một loại dữ liệu nhiều chiều hoặc xử lý đồng thời trên nhiều mảng dữ liệu.
Ví dụ cụ thể:
Em kiểm tra trên bàn cờ vua những ô nào đang có quân cờ.
Bàn cờ vua sẽ là hình vuông 8x8, giống như một loại dữ liệu 2 chiều mà mỗi ô được truy cập theo cột và hàng.
Một vòng lặp để em quét hết các cột, một vòng lặp khác để quét các hàng. Và chúng lồng vào nhau để quét hết cả bàn cờ.
Bạn tìm hiểu loop invariant, implement của nó là loop statement và break, các lệnh while, do while, for dựa trên loop statement.
Riêng loop invariant bắt nguồn từ Mathematical Induction (quy nạp), chỉ thêm phần chứng minh termination. Induction chỉ có base step và induction step.
mang[j][i]: giống cái bảng j hàng i cột
j
↓
1 [_][_][_][_][_]
2 [_][_][_][_][_]
3 [_][_][_][_][_]
4 [_][_][_][_][_]
..[1][2][3][4][5] i →
foreach (hàng : bảng){ //duyệt hàng
foreach (ô : hàng){ //duyệt ô
//làm gì đó với giá trị của ô
}
}
--------------------- tương đương-------------------------
lấy từng hàng từ bảng {
lấy từng ô từ hàng {
//làm gì đó với ô
}
}