# TypeScript - Vòng Lặp: Khám Phá Kỹ Thuật Lặp Lại Trong Lập Trình
Xin chào, các bạn đang học lập trình! Tôi rất vui mừng được làm hướng dẫn viên của bạn trong hành trình thú vị vào thế giới của các vòng lặp TypeScript. Với tư cách là người đã dạy lập trình hơn một thập kỷ, tôi có thể告诉 bạn rằng việc hiểu các vòng lặp giống như học骑自行车 - một khi bạn đã nắm vững, bạn sẽ không bao giờ quên và nó sẽ đưa bạn đến những nơi bạn chưa từng tưởng tượng!
## Vòng lặp `for`: Bước Đầu Tiên Vào Thế Giới Lặp Lại
Hãy bắt đầu với vòng lặp kinh điển `for`. Hãy tưởng tượng nó như một robot thân thiện tuân theo các hướng dẫn của bạn để thực hiện một nhiệm vụ một số lần cụ thể.
### Cú Pháp Cơ Bản
Dưới đây là cách một vòng lặp `for` trông như thế nào trong TypeScript:
```typescript
for (let i = 0; i < 5; i++) {
console.log("Xin chào, Thế giới!");
}
Hãy phân tích nó:
-
let i = 0
: Đây là nơi chúng ta bắt đầu đếm. -
i < 5
: Chúng ta tiếp tục miễn là điều này là đúng. -
i++
: Sau mỗi lần lặp, chúng ta tăng số đếm lên 1. - Mọi thứ bên trong
{ }
là những gì được lặp lại.
Khi bạn chạy đoạn mã này, bạn sẽ thấy "Xin chào, Thế giới!" được in ra năm lần. Điều này giống như nói với bạn robot bạn thân, "Nói xin chào năm lần!"
Ví Dụ Thực Tiễn Hơn
Hãy tưởng tượng bạn đang làm một trò chơi đơn giản nơi một nhân vật nhảy qua các chướng ngại vật. Dưới đây là cách bạn có thể sử dụng vòng lặp for
để tạo năm chướng ngại vật:
let obstacles: string[] = [];
for (let i = 0; i < 5; i++) {
obstacles.push(`Chướng ngại vật ${i + 1}`);
console.log(`Đã tạo ${obstacles[i]}`);
}
console.log("Tất cả các chướng ngại vật:", obstacles);
Trong ví dụ này, chúng ta đang tạo một mảng các chướng ngại vật. Vòng lặp chạy năm lần, mỗi lần thêm một chướng ngại vật mới vào mảng của chúng ta. Lưu ý cách chúng ta sử dụng i + 1
để đánh số các chướng ngại vật bắt đầu từ 1 thay vì 0.
Vòng lặp for...in
: Khám Phá Các Thuộc Tính Đối Tượng
Bây giờ, hãy gặp vòng lặp for...in
. Vòng lặp này hoàn hảo khi bạn muốn xem xét tất cả các thuộc tính của một đối tượng. Nó giống như có một robot tò mò muốn nhét vào mỗi ngăn kéo trong một bàn.
Cú Pháp Cơ Bản
Dưới đây là một ví dụ đơn giản:
let person = {
name: "Alice",
age: 30,
job: "Developer"
};
for (let key in person) {
console.log(`${key}: ${person[key]}`);
}
Vòng lặp này sẽ đi qua mỗi thuộc tính (hoặc "key") trong đối tượng person
và in nó ra cùng với giá trị của nó. Đây là một cách tuyệt vời để khám phá các đối tượng khi bạn không chắc chắn chúng có thể có những thuộc tính nào.
Ví Dụ Phức Tạp Hơn
Hãy tưởng tượng bạn đang xây dựng một hệ thống kho đơn giản cho một trò chơi role-playing:
let inventory = {
sword: 1,
shield: 1,
potion: 5,
arrow: 20
};
console.log("Kho của bạn:");
for (let item in inventory) {
if (inventory[item] > 1) {
console.log(`${inventory[item]} ${item}s`);
} else {
console.log(`${inventory[item]} ${item}`);
}
}
Đoạn mã này sẽ liệt kê kho của bạn, chính xác hóa số nhiều các vật phẩm khi bạn có nhiều hơn một. Nó giống như có một trợ lý giúp bạn đếm và báo cáo các vật phẩm!
Vòng lặp for...of
: Đơn Giản Hóa Việc Duyệt Mảng và Đối Tượng Iterable
Cuối cùng, hãy giới thiệu vòng lặp for...of
. Vòng lặp này hoàn hảo khi bạn muốn đi qua mỗi mục trong một mảng hoặc bất kỳ đối tượng iterable nào khác. Nó giống như có một robot có thể đi qua một dòng các mục và xem xét từng mục.
Cú Pháp Cơ Bản
Dưới đây là một ví dụ đơn giản sử dụng một mảng số:
let numbers = [1, 2, 3, 4, 5];
for (let num of numbers) {
console.log(num * 2);
}
Vòng lặp này sẽ đi qua mỗi số trong mảng numbers
và in ra giá trị gấp đôi của nó. Nó đơn giản hơn nhiều so với việc sử dụng vòng lặp for
truyền thống khi bạn chỉ muốn làm gì đó với mỗi mục.
Ví Dụ Hấp Dẫn Hơn
Hãy tưởng tượng bạn đang tạo một trò chơi冒险文字. Bạn có một mảng các hành động khả thi và bạn muốn hiển thị chúng cho người chơi:
let actions = ["Đấu", "Chạy", "Che giấu", "Gọi giúp"];
console.log("Bạn muốn làm gì?");
for (let action of actions) {
console.log(`- ${action}`);
}
// Hãy simulate một lựa chọn của người chơi
let playerChoice = actions[Math.floor(Math.random() * actions.length)];
console.log(`Bạn đã chọn ${playerChoice.toLowerCase()}.`);
Đoạn mã này hiển thị danh sách các hành động cho người chơi và sau đó simulate một lựa chọn ngẫu nhiên. Vòng lặp for...of
làm cho việc liệt kê tất cả các tùy chọn trở nên dễ dàng mà không cần lo lắng về chỉ số mảng.
So Sánh Các Phương Thức Vòng Lặp
Để giúp bạn chọn đúng vòng lặp cho nhu cầu của mình, đây là bảng so sánh tiện lợi:
Loại Vòng Lặp | Dùng Cho Tốt Nhất | Cú Pháp |
---|---|---|
for |
Số lần lặp已知 | for (let i = 0; i < n; i++) |
for...in |
Lặp qua các thuộc tính của đối tượng | for (let key in object) |
for...of |
Lặp qua các phần tử của mảng hoặc các đối tượng iterable khác | for (let item of iterable) |
Nhớ rằng, việc chọn đúng vòng lặp có thể làm cho mã của bạn dễ đọc và hiệu quả hơn. Nó giống như việc chọn đúng công cụ cho công việc - sử dụng búa cho đinh, tua vít cho ốc vít, và vòng lặp phù hợp cho dữ liệu của bạn!
Cuối cùng, vòng lặp là một khái niệm cơ bản trong lập trình, và việc thành thạo chúng sẽ mở ra thế giới của các khả năng trong hành trình lập trình của bạn. Dù bạn đang lặp lại một hành động, khám phá một đối tượng, hay làm việc với các mảng, đều có một vòng lặp phù hợp cho công việc. Hãy tiếp tục thực hành, và sớm bạn sẽ thành thạo việc sử dụng vòng lặp! Chúc may mắn, các nhà phát triển tương lai!
Credits: Image by storyset