Trong bài này
Danh sách dùng để lưu nhiều giá trị theo thứ tự. Nếu biến giống một ô nhớ đơn, danh sách giống một bảng nhiều dòng. Trong Scratch, danh sách phù hợp để lưu câu hỏi, đáp án, điểm nhiều lượt, tên người chơi, vật phẩm hoặc lịch sử thao tác.
Mục tiêu bài học
Sau bài này, em cần:
- Biết khi nào dùng danh sách thay vì biến thường.
- Dùng được các thao tác thêm, xóa, chèn, thay thế, đọc phần tử.
- Hiểu vị trí phần tử trong danh sách bắt đầu từ 1.
- Duyệt danh sách bằng biến chỉ số.
- Kiểm tra một giá trị có nằm trong danh sách hay không.
Biến và danh sách khác nhau thế nào?
| Nhu cầu | Nên dùng |
|---|---|
| Lưu một điểm hiện tại | Biến |
| Lưu 10 câu hỏi | Danh sách |
| Lưu tên người chơi | Biến |
| Lưu nhiều lượt điểm | Danh sách |
| Lưu các vật phẩm đã nhặt | Danh sách |
Thêm và xóa phần tử

Khối thêm sẽ đưa giá trị vào cuối danh sách. Khối xóa có thể xóa một vị trí cụ thể, ví dụ phần tử thứ 1.
Đọc phần tử theo vị trí

Trong Scratch, phần tử đầu tiên có vị trí 1. Nếu danh sách có 5 phần tử mà em đọc phần tử thứ 6, logic chương trình sẽ không còn đáng tin cậy.
Duyệt danh sách

Khi cần xem từng phần tử, dùng biến i làm chỉ số. Mỗi vòng lặp đọc phần tử thứ i, xử lý nó, rồi tăng i lên 1.
Tìm kiếm trong danh sách

Scratch có khối kiểm tra danh sách có chứa một giá trị hay không. Khối này rất hữu ích khi kiểm tra đáp án đã dùng, vật phẩm đã nhặt hoặc tên đã tồn tại.
Lỗi thường gặp
| Lỗi | Hậu quả | Cách sửa |
|---|---|---|
| Nhầm biến với danh sách | Chỉ lưu được một giá trị. | Dùng danh sách khi cần nhiều dòng dữ liệu. |
| Quên xóa danh sách lúc bắt đầu | Dữ liệu cũ còn lại. | Xóa tất cả phần tử trước khi nạp dữ liệu mới. |
| Đọc sai vị trí | Lấy nhầm phần tử hoặc rỗng. | Kiểm tra chỉ số từ 1 đến độ dài danh sách. |
| Duyệt thiếu/tăng i sai | Bỏ sót phần tử hoặc lặp vô hạn. | Tăng i đúng một lần sau mỗi lượt. |
Tóm tắt
Danh sách giúp Scratch xử lý dữ liệu nhiều dòng. Khi dùng danh sách, luôn kiểm tra vị trí phần tử, độ dài danh sách, và thời điểm thêm/xóa dữ liệu.