Học lập trình PHP cơ bản

Bài 12: Vòng lặp while & do while trong PHP

Khác với vòng lặp for trong php, vòng lặp while và vòng lặp do while lặp đối với những bài toán không xác định được số lần lặp, còn vòng lặp for thì biết được số lần lặp mới lặp được. Tuy nhiên có những bài toán có thể dùng cả 3 vòng lặp for, while và do while để giải. Nhưng để làm được thì trước tiên ta phải tìm hiểu các khái niệm vòng lặp whiledo while trong php.

1) Vòng lặp while trong PHP

  - Cú pháp:
while(điều kiện){
    //Đoạn mã mà bạn muốn thực thi
}
- Ví dụ 1: dùng vòng lặp while trong PHP để hiển thị dãy số tăng dần từ một đến chín
<?php
    $i = 1;
    while($i < 10){
        echo "<p>" . $i . "</p>";
        $i++; //Câu lệnh này giúp cho điều kiện dần trở nên bị SAI
    }
?>
- Ví dụ 2: dùng vòng lặp while trong PHP để hiển thị dãy số giảm dần từ tám xuống hai
<?php
    $i = 8;
    while($i > 1){
        echo "<p>" . $i . "</p>";
        $i--; //Câu lệnh này giúp cho điều kiện dần trở nên bị SAI
    }
?>

2) Vòng lặp do while trong PHP

- Tương tự như vòng lặp while, vòng lặp do while dùng để lặp lại việc thực thi một đoạn mã nếu điều kiện mà ta đưa ra vẫn còn đúng.
- Tuy nhiên, đối với vòng lặp do while thì ở lần đầu tiên đoạn mã sẽ được thực thi luôn mà không cần phải kiểm tra điều kiện (đó chính là điểm khác nhau giữa vòng lặp while và do while)
Cú pháp:
do{
    //Đoạn mã mà bạn muốn thực thi
}while(điều kiện);
Ví dụ 1: Dùng vòng lặp do while trong PHP để hiển thị dãy số tăng dần từ một đến chín
<?php
    $i = 1;
    do{
        echo "<p>" . $i . "</p>";
        $i++; //Câu lệnh này giúp cho điều kiện dần trở nên bị SAI
    }while($i < 10);
?>
Ví dụ 2: Dùng vòng lặp do while trong PHP để hiển thị dãy số giảm dần từ tám xuống hai
<?php
    $i = 8;
    do{
        echo "<p>" . $i . "</p>";
        $i--; //Câu lệnh này giúp cho điều kiện dần trở nên bị SAI
    }while($i > 1);
?>

3) Điểm khác nhau giữa vòng lặp while và do while

- Như đã nói ở trên, điểm khac nhau duy nhất giữa vòng lặp while và do while chính là đối với vòng lặp do while thì ở lần đầu tiên, đoạn mã sẽ được thực thi mà không cần phải kiểm tra điều kiện (tức là cho dù điều kiện có đúng hay sai thì đoạn mã vẫn được thực thi ít nhất một lần)
Ví dụ: Bên dưới chúng ta có một đoạn mã về vòng lặp while và một đoạn mã về vòng lặp do whiile, điều kiện ban đầu đưa ra là sai. Tuy nhiên, vòng lặp do whiile vẫn được thực thi một lần.
<?php
    $i = 11;
    while($i < 10){
        echo "<p>" . $i . "</p>";
        $i++;
    }
?>
<?php
    $i = 11;
    do{
        echo "<p>" . $i . "</p>";
        $i++;
    }while($i < 10);
?>

4) Sử dụng lệnh break và lệnh continue trong vòng lặp

- Lệnh break và lệnh continue thường được đặt bên trong vòng lặp.
  1. (1) Khi lệnh break được thực thi, vòng lặp sẽ kết thúc mặc cho điều kiện vẫn còn đang đúng.
  2. (2) Khi lệnh continue được thực thi, những câu lệnh còn lại của lần lặp hiện tại sẽ bị bỏ qua.
Ví dụ 1: dùng vòng lặp while để hiển thị dãy số từ một đến mười, tuy nhiên hiển thị tới số năm thì dừng lại
<?php
    $i = 1;
    while($i < 11){
        if($i == 6){break;}
        echo "<p>" . $i . "</p>";
        $i++;
    }
?>
Ví dụ 2: dùng vòng lặp while để hiển thị dãy số từ một đến mười (ngoại trừ số: ba, năm, chín)
<?php
    $i = 1;
    while($i < 11){
        if($i == 3 || $i ==5 || $i ==9){
            $i++;
            continue;
        }
        echo "<p>" . $i . "</p>";
        $i++;
    }
?>

5) Vòng lặp lồng nhau

- Tương tự như vòng lặp for, vòng lặp while (do while) cũng có thể lồng vào nhau:
  1. Vòng lặp "while" lồng bên trong vòng lặp "while"
  2. Vòng lặp "do while" lồng bên trong vòng lặp "do while"
  3. Vòng lặp "while" lồng bên trong vòng lặp "do while"
  4. Vòng lặp "do while" lồng bên trong vòng lặp "while"
- Bên dưới là một ví dụ về vòng lặp while lồng bên trong vòng lặp while.
<?php
    $i = 0;
    while($i < 10){
        $j = 1;
        while($j < 10){
            echo "<p>".$i.$j."</p>";
            $j++;
        }
        $i++;
    }
?>