Vòng Lặp While, Do-While trong PHP

Vòng Lặp while trong PHP

Vòng lặp while trong PHP được dùng để thực thi một đoạn mã lệnh lặp đi lặp lại khi một biểu thức điều kiện cho trước trả về giá trị là true.

Cú Pháp Vòng Lặp while

Vòng lặp while là vòng lặp đơn giản nhất so với cú pháp của các vòng lặp khác trong PHP. Cú pháp vòng lặp while như sau:

while (biểu thức điều kiện) {
    // code trong vòng lặp ...
}

Ở ví dụ sử dụng vòng lặp while dưới đây, giá trị của biểu thức $i <= 10 được kiểm tra tại mỗi lần lặp. Nếu như biểu thức này trả về giá trị true thì câu lệnh bên trong vòng lặp sẽ được thực thi:

<?php
    $i = 1;
    while ($i <= 10) {
        echo $i++;
    }
?>

Vòng Lặp While trong PHP

Lưu ý: Đoạn code bên trong vòng lặp echo $i++ vừa hiển thị giá trị của biến $i rồi sau đó tăng giá trị biến $i lên một đơn vị.

Nếu chúng ta không tăng giá trị của biến $i sau mỗi vòng lặp thì khi chạy vòng lặp while ở trên sẽ được lặp lại một số lần vô hạn. Lúc này vòng lặp được gọi là lặp vô hạn (hay infinite loop).

Đoạn code dưới đây khi chạy sẽ rơi vào tình trạng lặp vô hạn:

<?php
    $i = 1;
    while ($i <= 10) {
        echo $i;
    }
?>

Với các vòng lặp vô hạn, PHP có thể sẽ dùng nhiều dung lượng bộ nhớ tạm RAM và có thể dẫn tới lỗi tràn bộ nhớ.

Vòng Lặp do...while

Vòng lặp do-while tương tự như vòng lặp while tuy nhiên đoạn mã lệnh trong vòng lặp do-while luôn được thực thi ít nhất một lần.

Cú Pháp Vòng Lặp do...while

Vòng lặp do-while có cú pháp như sau:


do {
    // code trong vòng lặp...
} while (biểu thức điều kiện)

Ví dụ:

<?php
    $i = 0;

    do {
        echo $i++;
    } while ($i < 10);
?>

Vòng lặp Do-While trong PHP

Lưu ý: Vòng lặpdo...while chỉ khác với vòng lặp while ở chỗ câu lệnh đặt trong do luôn được chạy lần đầu tiên.

Hãy xem ví dụ sau để thấy sự khác biệt này:

<?php
    $i = 0;

    do {
        echo $i++;
    } while ($i < 0);
?>

Sự Khác Nhau Giữa Vòng Lặp While và Vòng Lặp Do-While

Như vậy mặc dù biểu thức điều kiện trong vòng lặp $i < 0 không trả về giá trị là true nhưng vòng lặp vẫn được chạy một lần.

10 bình luận


Đăng bình luận