# TypeScript - Vòng lặp Do While: Hướng dẫn cho người mới bắt đầu

Xin chào các bạn, những ngôi sao lập trình tương lai! Hôm nay, chúng ta sẽ cùng lặn sâu vào thế giới thú vị của TypeScript và khám phá một trong những khái niệm cơ bản của nó: vòng lặp do...while. Đừng lo lắng nếu bạn là người mới bắt đầu; tôi sẽ giải thích từng bước một, giống như tôi đã làm cho hàng trăm học sinh trong những năm dạy học của mình. Vậy, hãy lấy饮料 yêu thích của bạn, ngồi thoải mái, và cùng nhau bắt đầu hành trình lập trình này nhé!

## Vòng lặp Do...While là gì?

Trước khi chúng ta đi vào chi tiết, hãy hiểu xem vòng lặp do...while là gì. Hãy tưởng tượng bạn là một đầu bếp (hãy kiên nhẫn với tôi, tôi hứa rằng ví dụ này sẽ có ý nghĩa). Bạn có một công thức nói rằng, "Khuấy суп và nếm thử. Nếu không đủ mặn, thêm muối và lặp lại." Đó chính xác là điều mà vòng lặp do...while làm trong lập trình - nó thực hiện một hành động, kiểm tra một điều kiện, và lặp lại nếu cần thiết.

## Cú pháp: Công thức cho vòng lặp của chúng ta

Bây giờ, hãy xem cú pháp của vòng lặp do...while trong TypeScript. Nó giống như cấu trúc của công thức của chúng ta:

```typescript
do {
    // Mã cần thực thi
} while (điều kiện);

Dưới đây là ý nghĩa của từng phần:

TypeScript - Do While Loop

  1. do: Đây là nơi chúng ta bắt đầu vòng lặp của mình.
  2. { }: Trong những dấu ngoặc này, chúng ta đặt mã mà chúng ta muốn lặp lại.
  3. while: Sau khối mã của chúng ta, chúng ta sử dụng từ khóa này.
  4. (điều kiện): Đây là kiểm tra của chúng ta. Nếu nó là true, chúng ta quay lại đầu vòng lặp.
  5. ;: Đừng quên dấu phẩy đơn ở cuối!

Sơ đồ 流程: Con đường thực thi

Để hình dung cách vòng lặp do...while hoạt động, hãy xem sơ đồ 流程:

┌─────────────┐
│   Bắt đầu   │
└─────┬───────┘
      │
      ▼
┌─────────────┐
│ Thực thi    │
│ Khối mã     │
└─────┬───────┘
      │
      ▼
┌─────────────┐     Có
│ Điều kiện  ├────────┐
│   Đúng?     │        │
└─────┬───────┘        │
      │ Không          │
      ▼                │
┌─────────────┐        │
│   Kết thúc  │        │
└─────────────┘        │
                       │
                       └─────────────────────┘

Sơ đồ này cho thấy rằng mã trong vòng lặp luôn được thực thi ít nhất một lần trước khi kiểm tra điều kiện.

Ví dụ: Hãy cùng nấu một đoạn mã!

Bây giờ, hãy xem vòng lặp do...while trong hành động với một ví dụ vui vẻ. Chúng ta sẽ tạo một trò chơi đoán số đơn giản:

let secretNumber: number = 7; // Số bí mật của chúng ta
let guess: number;
let attempts: number = 0;

do {
    guess = Number(prompt("Guess the number between 1 and 10:")); // Yêu cầu đoán số
    attempts++; // Tăng số lần đoán

    if (guess < secretNumber) {
        console.log("Too low! Try again.");
    } else if (guess > secretNumber) {
        console.log("Too high! Try again.");
    }
} while (guess !== secretNumber);

console.log(`Congratulations! You guessed the number in ${attempts} attempts.`);

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

  1. Chúng ta đặt secretNumber là 7 và khởi tạo các biến guessattempts.
  2. Khối do yêu cầu người dùng đoán số và tăng bộ đếm attempts.
  3. Chúng ta cung cấp phản hồi nếu đoán thấp hoặc cao.
  4. Điều kiện while (guess !== secretNumber) kiểm tra xem đoán có chính xác không.
  5. Nếu đoán không chính xác, vòng lặp tiếp tục.
  6. Khi số chính xác được đoán, chúng ta thoát khỏi vòng lặp và chúc mừng người chơi.

Trò chơi này sẽ luôn yêu cầu ít nhất một lần đoán, điều này hoàn hảo cho vòng lặp do...while!

Khi nào nên sử dụng vòng lặp Do...While

Bạn có thể tự hỏi, "Tại sao không chỉ sử dụng vòng lặp while thông thường?" Câu hỏi tuyệt vời! Sử dụng vòng lặp do...while khi bạn muốn đảm bảo rằng mã của bạn chạy ít nhất một lần, bất kể điều kiện là gì. Đó như nói, "Thử này, và sau đó chúng ta sẽ xem có cần làm lại không."

Dưới đây là một số tình huống thực tế mà vòng lặp do...while tỏa sáng:

  1. Xác thực đầu vào người dùng: Yêu cầu đầu vào cho đến khi nó hợp lệ.
  2. Vòng lặp trò chơi: Chạy trò chơi cho đến khi người chơi quyết định thoát.
  3. Hệ thống menu: Hiển thị các tùy chọn cho đến khi người dùng chọn thoát.

So sánh các loại vòng lặp

Hãy xem cách vòng lặp do...while của chúng ta so sánh với các loại vòng lặp khác:

Loại vòng lặp Kiểm tra điều kiện Thực thi đảm bảo
while Trước vòng lặp Không
for Trước vòng lặp Không
do...while Sau vòng lặp Có, ít nhất một lần

Lỗi phổ biến và Lời khuyên

Là người dạy lập trình hàng xóm thân thiện của bạn, tôi đã thấy học sinh của mình vấp phải một số lỗi phổ biến với vòng lặp do...while. Dưới đây là một số lời khuyên để bạn nhớ:

  1. Vòng lặp vô hạn: Luôn đảm bảo rằng điều kiện của bạn sẽ cuối cùng trở thành false, hoặc bạn sẽ bị mắc kẹt trong một vòng lặp vô hạn (giống như bị mắc kẹt trong máy thời gian, liên tục sống lại cùng một khoảnh khắc)!

  2. Đặt điều kiện: Nhớ rằng điều kiện nằm ở cuối. Nó dễ dàng để vô tình viết nó như một vòng lặp while do thói quen.

  3. Dấu phẩy đơn: Đừng quên dấu phẩy đơn sau điều kiện while. Nó nhỏ nhưng rất quan trọng!

  4. Biến vòng lặp: Nếu điều kiện của bạn phụ thuộc vào một biến, hãy chắc chắn rằng bạn đang cập nhật biến này bên trong vòng lặp.

Kết luận: Kết hợp tất cả lại

Và thế là bạn đã nắm vững vòng lặp do...while trong TypeScript! Nhớ rằng, giống như học骑自行车, nó có thể cảm thấy hơi颠簸 ban đầu, nhưng với sự luyện tập, bạn sẽ lập trình như một chuyên gia trong thời gian không lâu.

Khi chúng ta kết thúc, hãy để lại một tí hài hước lập trình cho bạn: Tại sao lập trình viên từ bỏ công việc của mình? Vì anh ấy không thể tăng lương... trong biến vòng lặp của mình! (Ba dum tss! ?)

Tiếp tục luyện tập, 保持好奇心, và quan trọng nhất, hãy vui vẻ với hành trình lập trình của bạn. Trước khi bạn biết, bạn sẽ là người dạy người khác về những kỳ diệu của vòng lặp do...while!

Credits: Image by storyset