> For the complete documentation index, see [llms.txt](https://docs.gpmautomate.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.gpmautomate.com/huong-dan-cac-action/cac-block/while.md).

# While

Khác với vòng lặp For (lặp với số lần cố định), vòng lặp While thường được sử dụng khi bạn chưa biết trước kịch bản sẽ phải lặp lại bao nhiêu lần, mà phụ thuộc hoàn toàn vào trạng thái thực tế lúc chạy.

🎥 Xem thêm video hướng dẫn: [Tại đây](https://youtu.be/4O4dPC-CNHM).

#### Cách thức hoạt động:

* Trước khi bắt đầu mỗi lượt lặp, hệ thống sẽ kiểm tra điều kiện (Condition) mà bạn cấu hình.
* Nếu điều kiện chưa thỏa mãn, các hành động bên trong khối While sẽ tiếp tục được thực thi.
* Ngay khi điều kiện thỏa mãn, hệ thống sẽ dừng vòng lặp lại và chuyển sang các hành động tiếp theo bên dưới khối While.

#### Ví dụ thực tế: Chờ lấy mã OTP Mail/Telegram

Giả sử bạn làm kịch bản đăng ký tài khoản và cần chờ hệ thống gửi mã OTP về Email. Vì thời gian Mail về có thể nhanh hoặc chậm, bạn không thể biết trước phải chờ bao lâu:

* Bạn đặt hành động Read mail code vào trong khối While.
* Điều kiện dừng của vòng lặp: Khi biến `$otpCode` nhận được giá trị (không còn rỗng).
* Hệ thống sẽ liên tục kiểm tra và đọc hòm thư. Ngay khi lấy được mã OTP thành công, điều kiện thỏa mãn, vòng lặp dừng lại để kịch bản chạy tiếp bước điền mã.

<figure><img src="/files/qzOtT2T6Vw1QjUNNgbho" alt=""><figcaption></figcaption></figure>

> ⚠️ Lưu ý quan trọng: Khi sử dụng vòng lặp While, bạn cần đảm bảo các hành động bên trong khối lệnh sẽ làm thay đổi trạng thái của điều kiện dừng. Nếu điều kiện cấu hình sai hoặc Mail không bao giờ về, kịch bản sẽ rơi vào trạng thái lặp vô hạn (treo kịch bản).
>
> Để tối ưu, bạn nên kết hợp thêm một biến đếm số lần kiểm tra. Nếu quá 10 lần mà không có Mail, hãy dùng hành động Exit loop để thoát vòng lặp, hoặc hành động Stop để dừng hẳn chương trình và chuyển sang profile tiếp theo.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.gpmautomate.com/huong-dan-cac-action/cac-block/while.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
