TypeScript - Vòng Lặp While: Hướng Dẫn Dành Cho Người Mới Bắt Đầu

Xin chào, các bạn đang học lập trình! Hôm nay, chúng ta sẽ cùng nhau tìm hiểu một trong những khái niệm cơ bản trong lập trình: vòng lặp while. Là người thầy lập trình gần gũi của bạn, tôi rất vui mừng được dẫn dắt bạn trong hành trình này. Đừng lo lắng nếu bạn là người mới bắt đầu học lập trình - chúng ta sẽ bắt đầu từ những điều cơ bản và dần dần nâng cao. Vậy, hãy lấy một tách cà phê (hoặc đồ uống yêu thích của bạn), và cùng nhau bắt đầu với vòng lặp!

TypeScript - While Loop

Vòng Lặp While Là Gì?

Trước khi chúng ta đi sâu vào chi tiết, hãy hiểu rõ vòng lặp while là gì. Hãy tưởng tượng bạn đang chơi một trò chơi mà bạn cần掷 xúc xắc cho đến khi bạn được số 6. Bạn sẽ không biết trước bạn cần掷 bao nhiêu lần, phải không? Đó chính xác là lúc vòng lặp while phát huy tác dụng trong lập trình!

Vòng lặp while cho phép bạn lặp lại một khối mã miễn là một điều kiện nào đó vẫn đúng. Nó giống như bạn đang nói với máy tính của bạn, "Hey, tiếp tục làm này cho đến khi tôi bảo bạn dừng lại!"

Cú Pháp

Bây giờ, hãy cùng nhìn vào cú pháp của vòng lặp while trong TypeScript:

while (condition) {
    // mã cần thực thi
}

Nó rất đơn giản, phải không? Dưới đây là ý nghĩa của mỗi phần:

  • while: Từ khóa này cho TypeScript biết rằng chúng ta đang bắt đầu một vòng lặp while.
  • condition: Đây là một biểu thức boolean được kiểm tra trước mỗi lần lặp. Nếu nó đúng, vòng lặp tiếp tục; nếu nó sai, vòng lặp dừng lại.
  • { }: Cặp ngoặc này chứa mã sẽ được thực thi liên tục miễn là điều kiện vẫn đúng.

Sơ Đồ Luồng

Để hiểu rõ hơn về cách vòng lặp while hoạt động, hãy nhìn vào sơ đồ luồng:

       ┌─────────────┐
       │   Bắt đầu   │
       └─────┬───────┘
             │
             ▼
    ┌─────────────────┐
    │ Kiểm tra điều kiện │◄─────┐
    └─────────┬───────┘      │
              │              │
              ▼              │
         ┌────────┐          │
    ┌────│  Đúng  │          │
    │    └────┬───┘          │
    │         │              │
    │         ▼              │
    │  ┌─────────────┐       │
    │  │ Thực thi mã │       │
    │  └─────────────┘       │
    │         │              │
    │         └──────────────┘
    │    
    │    ┌────────┐
    └────►  Sai   │
         └────┬───┘
              │
              ▼
       ┌─────────────┐
       │    Kết thúc │
       └─────────────┘

Sơ đồ này cho thấy vòng lặp while liên tục kiểm tra điều kiện và thực thi khối mã cho đến khi điều kiện trở thành sai.

Ví Dụ: Vòng Lặp While

Hãy cùng vào một ví dụ thực tế. Chúng ta sẽ tạo một chương trình đếm ngược từ 5 đến 1:

let countdown: number = 5;

while (countdown > 0) {
    console.log(countdown);
    countdown--;
}

console.log("Nổ!");

Hãy phân tích điều này:

  1. Chúng ta bắt đầu bằng cách khai báo một biến countdown và đặt nó là 5.
  2. Vòng lặp while kiểm tra nếu countdown lớn hơn 0.
  3. Nếu nó là, nó sẽ in giá trị hiện tại của countdown.
  4. Sau đó, nó giảm countdown đi 1 bằng cách sử dụng toán tử --.
  5. Quá trình này lặp lại cho đến khi countdown không còn lớn hơn 0.
  6. Cuối cùng, nó in "Nổ!" một khi vòng lặp kết thúc.

Khi bạn chạy đoạn mã này, bạn sẽ thấy:

5
4
3
2
1
Nổ!

Thật thú vị phải không? Nó giống như chúng ta đã tạo ra một rocket countdown nhỏ của riêng mình!

Vòng Lặp While Với Lệnh Break

Đôi khi, bạn có thể muốn thoát khỏi vòng lặp sớm dựa trên một điều kiện cụ thể. Đó là lúc lệnh break phát huy tác dụng. Nó giống như có một lối thoát khẩn cấp trong vòng lặp của bạn!

Hãy thay đổi ví dụ đếm ngược của chúng ta:

let countdown: number = 10;

while (countdown > 0) {
    console.log(countdown);
    countdown--;

    if (countdown === 5) {
        console.log("Chúng ta đã ở giữa đường!");
        break;
    }
}

console.log("Đếm ngược bị gián đoạn!");

Trong ví dụ này, chúng ta bắt đầu đếm ngược từ 10, nhưng chúng ta ngắt nó khi chúng ta đến 5. Kết quả đầu ra sẽ là:

10
9
8
7
6
5
Chúng ta đã ở giữa đường!
Đếm ngược bị gián đoạn!

Lệnh break cho phép chúng ta thoát khỏi vòng lặp sớm khi một điều kiện cụ thể được满足.

Vòng Lặp While So Sánh Với Vòng Lặp For

Bây giờ, bạn có thể tự hỏi, "Tại sao sử dụng vòng lặp while khi chúng ta có vòng lặp for?" Câu hỏi tuyệt vời! Hãy so sánh chúng:

Vòng Lặp While Vòng Lặp For
Sử dụng khi số lần lặp không được biết trước Sử dụng khi số lần lặp được biết trước
Điều kiện được kiểm tra ở đầu mỗi lần lặp Khởi tạo, điều kiện và cập nhật đều ở một dòng
Dễ dàng tạo ra vòng lặp vô hạn Thường được sử dụng cho các vòng lặp hữu hạn
Cấu trúc linh hoạt hơn Cấu trúc gọn hơn

Dưới đây là một ví dụ nhanh để minh họa:

// Vòng lặp while
let i: number = 0;
while (i < 5) {
    console.log(i);
    i++;
}

// Vòng lặp for tương đương
for (let j: number = 0; j < 5; j++) {
    console.log(j);
}

Cả hai vòng lặp này sẽ in số từ 0 đến 4. Vòng lặp while linh hoạt hơn, vì bạn có thể thay đổi biến vòng lặp (i) theo cách phức tạp hơn trong thân vòng lặp. Vòng lặp for, mặt khác, ngắn gọn hơn khi bạn biết chính xác số lần bạn muốn lặp lại.

Kết Luận

Và đây, các bạn! Chúng ta đã cùng nhau khám phá thế giới của vòng lặp while trong TypeScript. Từ việc hiểu cú pháp cơ bản đến việc sử dụng lệnh break và so sánh với vòng lặp for, bạn现在已经 được trang bị kiến thức để sử dụng vòng lặp while một cách hiệu quả trong mã của mình.

Nhớ rằng, lập trình giống như học骑自行车 - ban đầu có thể trông cứng nhắc, nhưng với sự gyak luyện, bạn sẽ nhanh chóng trở nên thành thạo! Hãy thử nghiệm với vòng lặp while trong các dự án của riêng bạn. Thử tạo một trò chơi đoán số, hoặc một chương trình tính lãi kép cho đến khi đạt một số tiền cụ thể.

Chúc các bạn lập trình vui vẻ, và mong rằng các vòng lặp của bạn luôn kết thúc!

Credits: Image by storyset