PHP - Vòng lặp While: Hướng dẫn 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 tìm hiểu một trong những khái niệm cơ bản nhất trong lập trình PHP: Vòng lặp While. Đừng lo lắng nếu bạn chưa bao giờ viết một dòng mã trước đây - tôi sẽ hướng dẫn bạn từng bước, tương tự như tôi đã làm với hàng trăm học viên trong lớp của mình trong nhiều năm qua.

PHP - While Loop

Vòng lặp While là gì?

Trước khi chúng ta vào các ví dụ, hãy hiểu qua về vòng lặp while. Hãy tưởng tượng bạn đang đánh răng. Bạn không chỉ đánh răng một lần rồi dừng lại, phải không? Bạn tiếp tục đánh răng cho đến khi răng sạch. Đó chính xác là cách mà vòng lặp while hoạt động trong lập trình!

Một vòng lặp while liên tục thực thi một khối mã miễn là một điều kiện xác định là đúng. Nó giống như nói với máy tính, "Hey, tiếp tục làm nhiệm vụ này miễn là điều kiện này là đúng."

Bây giờ, hãy cùng xem một số ví dụ để hiểu rõ hơn.

Ví dụ 1: Đếm đến 5

<?php
$count = 1;
while ($count <= 5) {
echo $count . " ";
$count++;
}
?>

Nếu bạn chạy đoạn mã này, bạn sẽ thấy: 1 2 3 4 5

Hãy phân tích:

  1. Chúng ta bắt đầu với $count = 1.
  2. Vòng lặp kiểm tra nếu $count <= 5 (giá trị của count nhỏ hơn hoặc bằng 5?).
  3. Nếu đúng, nó sẽ in giá trị hiện tại của $count.
  4. Sau đó, nó tăng giá trị của $count lên 1 ($count++).
  5. Quá trình này lặp lại cho đến khi $count bằng 6, lúc đó điều kiện trở thành sai và vòng lặp dừng lại.

Ví dụ 2: Giảm số đếm

Hãy lật ngược ví dụ trước:

<?php
$count = 5;
while ($count > 0) {
echo $count . " ";
$count--;
}
echo "Nổ!";
?>

Kết quả: 5 4 3 2 1 Nổ!

Lần này, chúng ta đang đếm ngược! Nó giống như một đếm ngược cho phóng tên lửa. Chúng ta bắt đầu từ 5 và tiếp tục miễn là giá trị đếm lớn hơn 0. Mỗi lần lặp, chúng ta giảm giá trị đếm đi 1 ($count--).

Ví dụ 3: Đầu vào từ người dùng

Hãy làm cho việc này tương tác hơn:

<?php
$correct_password = "secret123";
$attempt = "";

while ($attempt != $correct_password) {
$attempt = readline("Nhập mật khẩu: ");
if ($attempt != $correct_password) {
echo "Sai, hãy thử lại!\n";
}
}

echo "Đã cấp quyền truy cập!";
?>

Đoạn mã này mô phỏng một hệ thống nhập mật khẩu. Nó tiếp tục yêu cầu mật khẩu miễn là mật khẩu nhập vào không chính xác. Nó giống như bị kẹt ngoài cửa nhà cho đến khi bạn nhớ ra đúng chìa khóa!

Lặp qua mảng với "while"

Mảng trong PHP giống như danh sách. Hãy sử dụng vòng lặp while để duyệt qua một mảng:

<?php
$fruits = array("Apple", "Banana", "Cherry", "Date", "Elderberry");
$i = 0;

while ($i < count($fruits)) {
echo $fruits[$i] . "\n";
$i++;
}
?>

Điều này sẽ in mỗi loại quả trên một dòng. count($fruits) cho chúng ta biết số lượng phần tử trong mảng, vì vậy chúng ta tiếp tục lặp miễn là bộ đếm nhỏ hơn số lượng phần tử này.

Vòng lặp "while" lồng nhau

Đôi khi, chúng ta cần vòng lặp trong vòng lặp. Nó giống như có bánh xe trong bánh xe:

<?php
$i = 1;
while ($i <= 3) {
$j = 1;
while ($j <= 3) {
echo $i . "-" . $j . " ";
$j++;
}
echo "\n";
$i++;
}
?>

Kết quả:

1-1 1-2 1-3
2-1 2-2 2-3
3-1 3-2 3-3

Điều này tạo ra một lưới 3x3. Vòng lặp ngoài kiểm soát hàng, và vòng lặp trong kiểm soát cột.

Duyệt qua các ký tự trong một chuỗi

Chuỗi trong PHP là các chuỗi ký tự. Chúng ta có thể sử dụng vòng lặp while để duyệt qua mỗi ký tự:

<?php
$word = "Hello";
$i = 0;
while ($i < strlen($word)) {
echo $word[$i] . "\n";
$i++;
}
?>

Điều này sẽ in mỗi chữ cái của "Hello" trên một dòng. strlen($word) cho chúng ta biết chiều dài của chuỗi.

Sử dụng câu lệnh "endwhile"

PHP cung cấp một cú pháp thay thế cho vòng lặp while bằng cách sử dụng endwhile:

<?php
$count = 1;
while ($count <= 5):
echo $count . " ";
$count++;
endwhile;
?>

Điều này làm cùng việc với ví dụ đầu tiên của chúng ta, nhưng một số người thấy cú pháp này rõ ràng hơn cho các vòng lặp dài.

Các phương pháp thông dụng với vòng lặp while

Dưới đây là bảng các phương pháp thông dụng sử dụng với vòng lặp while:

Phương pháp Mô tả Ví dụ
break Thoát khỏi vòng lặp ngay lập tức if ($count == 3) break;
continue Bỏ qua phần còn lại của lần lặp hiện tại if ($count == 3) continue;
$variable++ Tăng giá trị của biến lên 1 $count++;
$variable-- Giảm giá trị của biến xuống 1 $count--;

Nhớ rằng, vòng lặp while rất mạnh mẽ, nhưng hãy cẩn thận! Nếu điều kiện của bạn không bao giờ trở thành sai, bạn sẽ tạo ra một vòng lặp vô hạn và chương trình của bạn sẽ không bao giờ dừng lại. Nó giống như nói với ai đó tiếp tục đi cho đến khi họ đến tận cùng trái Đất - họ sẽ đi mãi mãi!

Tóm lại, vòng lặp while là một công cụ cơ bản trong lập trình PHP. Chúng cho phép chúng ta lặp lại các hành động, xử lý danh sách dữ liệu, và tạo ra các hành vi phức tạp trong mã của chúng ta. Hãy tập luyện với các ví dụ này, thử nghiệm với ý tưởng của riêng bạn, và sớm bạn sẽ thành thạo việc sử dụng vòng lặp!

Credits: Image by storyset