PHP - 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 đang học lập trình! Hôm nay, chúng ta sẽ khám phá thế giới đầy thú vị của các vòng lặp trong PHP, cụ thể là vòng lặp do...while. Là giáo viên lập trình hàng xóm thân thiện của bạn, tôi sẽ hướng dẫn bạn qua khái niệm này với rất nhiều ví dụ và giải thích. Hãy chuẩn bị sẵn sàng笔记本 ảo của bạn và cùng nhau bắt đầu vòng lặp!

PHP - Do…While Loop

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

Trước khi chúng ta nhảy vào các ví dụ, hãy hiểu qua về vòng lặp do...while là gì. Hãy tưởng tượng bạn đang chơi một trò chơi mà bạn phải tiếp tục掷骰子 cho đến khi bạn được số 6. Bạn sẽ掷骰子 ít nhất một lần, phải không? Đó chính xác là cách mà vòng lặp do...while hoạt động!

Một vòng lặp do...while sẽ thực thi một khối mã ít nhất một lần trước khi kiểm tra xem điều kiện có đúng hay không. Nếu điều kiện là đúng, nó sẽ tiếp tục thực thi khối mã cho đến khi điều kiện trở thành sai.

Bây giờ, hãy xem xét cú pháp:

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

Ví dụ 1: Vòng lặp Do...While cơ bản

Hãy bắt đầu với một ví dụ đơn giản:

<?php
$i = 1;
do {
echo "Số là: $i <br>";
$i++;
} while ($i <= 5);
?>

Điều gì đang xảy ra ở đây?

  1. Chúng ta khởi tạo một biến $i với giá trị 1.
  2. Vòng lặp bắt đầu với do, và chúng ta echo giá trị hiện tại của $i.
  3. Chúng ta tăng giá trị của $i lên 1 bằng $i++.
  4. Sau dấu phẩy kép, chúng ta có điều kiện while. Nó kiểm tra xem $i có nhỏ hơn hoặc bằng 5 hay không.
  5. Nếu điều kiện là đúng, vòng lặp tiếp tục; nếu sai, nó dừng lại.

Kết quả đầu ra:

Số là: 1
Số là: 2
Số là: 3
Số là: 4
Số là: 5

Ví dụ 2: Vòng lặp Do...While với đầu vào từ người dùng

Hãy làm cho mọi thứ trở nên tương tác hơn! Chúng ta sẽ tạo một trò chơi đoán số đơn giản:

<?php
$secretNumber = 7;
do {
$guess = (int)readline("Đoán số (từ 1 đến 10): ");
if ($guess < $secretNumber) {
echo "Quá thấp! Hãy thử lại.\n";
} elseif ($guess > $secretNumber) {
echo "Quá cao! Hãy thử lại.\n";
}
} while ($guess != $secretNumber);

echo "Chúc mừng! Bạn đã đoán đúng!";
?>

Trong ví dụ này:

  1. Chúng ta đặt một số bí mật (7 trong trường hợp này).
  2. Vòng lặp yêu cầu người dùng đoán số.
  3. Nó cung cấp phản hồi nếu số đoán quá thấp hoặc quá cao.
  4. Vòng lặp tiếp tục cho đến khi số chính xác được đoán.

Ví dụ này minh họa cách vòng lặp do...while có thể được sử dụng cho việc xác thực đầu vào và tạo trò chơi đơn giản!

Ví dụ 3: Đọc tệp với Vòng lặp Do...While

Hãy khám phá một ví dụ thực tế hơn - đọc các dòng từ một tệp:

<?php
$file = fopen("sample.txt", "r");

do {
$line = fgets($file);
if ($line !== false) {
echo $line . "<br>";
}
} while ($line !== false);

fclose($file);
?>

Điều gì đang xảy ra ở đây?

  1. Chúng ta mở một tệp có tên "sample.txt" trong chế độ đọc.
  2. Vòng lặp đọc một dòng từ tệp sử dụng fgets().
  3. Nếu dòng không phải là false (tức là không phải là cuối tệp), chúng ta echo nó.
  4. Vòng lặp tiếp tục cho đến khi chúng ta đạt đến cuối tệp.
  5. Cuối cùng, chúng ta đóng tệp.

Ví dụ này cho thấy vòng lặp do...while có thể hữu ích cho các thao tác trên tệp!

Giảm số đếm trong vòng lặp "do...while"

Bây giờ, hãy đếm ngược bằng vòng lặp do...while:

<?php
$countdown = 5;

do {
echo "T-minus $countdown...<br>";
$countdown--;
} while ($countdown > 0);

echo "Bắn phát lôi! ?";
?>

Trong đếm ngược này:

  1. Chúng ta bắt đầu với $countdown được đặt là 5.
  2. Vòng lặp in ra số đếm ngược hiện tại.
  3. Chúng ta giảm $countdown bằng $countdown--.
  4. Vòng lặp tiếp tục miễn là $countdown lớn hơn 0.
  5. Khi chúng ta đạt đến zero, chúng ta bắn phát lôi!

Kết quả đầu ra:

T-minus 5...
T-minus 4...
T-minus 3...
T-minus 2...
T-minus 1...
Bắn phát lôi! ?

Đảo ngược một chuỗi bằng vòng lặp Do...While

Hãy sáng tạo và đảo ngược một chuỗi bằng vòng lặp do...while:

<?php
$str = "Hello, World!";
$length = strlen($str) - 1;

do {
echo $str[$length];
$length--;
} while ($length >= 0);
?>

Điều gì đang xảy ra ở đây?

  1. Chúng ta bắt đầu với chuỗi "Hello, World!".
  2. Chúng ta lấy chỉ số cuối cùng của chuỗi (chiều dài - 1).
  3. Vòng lặp in ra mỗi ký tự bắt đầu từ cuối.
  4. Chúng ta giảm chỉ số trong mỗi lần lặp.
  5. Vòng lặp tiếp tục cho đến khi chúng ta đã in ra ký tự đầu tiên.

Kết quả đầu ra:

!dlroW ,olleH

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

Cuối cùng, hãy khám phá vòng lặp do...while lồng nhau với một mẫu vui nhộn:

<?php
$i = 1;
do {
$j = 1;
do {
echo "* ";
$j++;
} while ($j <= $i);
echo "<br>";
$i++;
} while ($i <= 5);
?>

Hãy phân tích này:

  1. Vòng lặp ngoài kiểm soát số lượng hàng (5 trong trường hợp này).
  2. Vòng lặp trong in ra các ngôi sao trong mỗi hàng.
  3. Số lượng ngôi sao trong mỗi hàng bằng số thứ tự của hàng.
  4. Chúng ta sử dụng <br> để chuyển sang hàng mới sau mỗi hàng.

Kết quả đầu ra:

*
* *
* * *
* * * *
* * * * *

Bảng tóm tắt phương thức

Dưới đây là bảng tóm tắt các phương thức chúng ta đã sử dụng trong các ví dụ:

Phương thức Mô tả
echo Xuất một hoặc nhiều chuỗi
readline Đọc một dòng từ đầu vào người dùng
fopen Mở một tệp hoặc URL
fgets Lấy một dòng từ con trỏ tệp
fclose Đóng một tệp đã mở
strlen Trả về chiều dài của một chuỗi

Và thế là xong, các bạn! Chúng ta đã lướt qua các khía cạnh của vòng lặp do...while trong PHP. Nhớ rằng, thực hành là cách tốt nhất để trở nên hoàn hảo, vì vậy hãy tiếp tục lập trình và thử nghiệm với các vòng lặp này. Trước khi bạn biết, bạn sẽ vòng vo quanh các thử thách lập trình của mình! Chúc các bạn may mắn! ??

Credits: Image by storyset