Học cách sử dụng vòng lặp while cực kỳ quan trọng nếu bạn là người mới học lập trình. May mắn thay, các vòng lặp while có hành vi và cú pháp giống nhau trên hầu hết các ngôn ngữ lập trình. Nhưng, tất nhiên, luôn có một số ngoại lệ
Vòng lặp while sẽ kiểm tra một điều kiện trước khi thực thi mã bên trong vòng lặp. Kiểu vòng lặp này được gọi là vòng lặp kiểm soát mục nhập. PHP sẽ thực thi mã bên trong vòng lặp nếu điều kiện là đúng. Tuy nhiên, nếu điều kiện là sai, nó sẽ bỏ qua mã bên trong vòng lặp và tiếp tục thực thi mã sau vòng lặp
Bạn có thể lồng các vòng lặp while vào nhau nhưng bạn cần cẩn thận vì nhiều vòng lặp lồng nhau có thể gây ra các vấn đề về hiệu suất, đặc biệt là khi xử lý các tập dữ liệu lớn
Một giải pháp thay thế cho vòng lặp while được gọi là vòng lặp do-while. Vòng lặp do-while thì ngược lại và sẽ thực thi mã bên trong vòng lặp trước khi kiểm tra điều kiện. Quá trình này có nghĩa là mã bên trong vòng lặp sẽ luôn chạy ít nhất một lần
Mục lục
trong khi cú pháp vòng lặp
Có một số cách khác nhau để bạn có thể cấu trúc một vòng lặp while. Chúng khá đơn giản và không phức tạp hơn nhiều so với một câu lệnh if đơn giản.
Vòng lặp while sẽ tiếp tục chạy cho đến khi điều kiện trong ngoặc là sai. Nếu điều kiện không bao giờ được đáp ứng, PHP sẽ đơn giản di chuyển qua vòng lặp while mà không thực thi mã bên trong
Ví dụ bên dưới sử dụng dấu ngoặc nhọn để đặt mã mà chúng tôi muốn chạy nếu điều kiện là đúng. Phong cách này rất có thể là phong cách bạn sẽ gặp khi đọc qua mã PHP
while (condition) { // Code here will be executed if the condition is met }Bạn cũng có thể viết vòng lặp while không có dấu ngoặc nhọn và chỉ cần kết thúc vòng lặp while bằng cách sử dụng while (condition): // Code here will be executed if the condition is met endwhile;1. Dấu hai chấm cũng cần được đặt sau dấu ngoặc đóng trong câu lệnh điều kiện
while (condition): // Code here will be executed if the condition is met endwhile;Cách sử dụng vòng lặp while trong PHP
Trong hướng dẫn này, chúng ta sẽ đề cập đến những điều cơ bản về cách viết một vòng lặp while đơn giản trong PHP. Dưới đây là một số ví dụ cơ bản về cách viết vòng lặp while
Tôi thực sự khuyên bạn nên học các toán tử PHP để bạn có thể xây dựng các điều kiện chất lượng tốt cho vòng lặp while
trong khi Vòng lặp Sử dụng Dấu ngoặc nhọn
Đoạn mã dưới đây rất cơ bản nhưng sẽ cho bạn thấy các nguyên tắc cơ bản của vòng lặp while trong PHP
Đầu tiên, chúng ta tạo một biến có tên là while (condition): // Code here will be executed if the condition is met endwhile;2 và gán cho nó giá trị là while (condition): // Code here will be executed if the condition is met endwhile;3
Trong vòng lặp while, chúng ta có một điều kiện quy định rằng thời gian while (condition): // Code here will be executed if the condition is met endwhile;2 nhỏ hơn hoặc bằng while (condition): // Code here will be executed if the condition is met endwhile;5 thì kết quả là đúng. Miễn là điều kiện trả về đúng, vòng lặp while sẽ chạy
Bên trong vòng lặp while, chúng tôi lặp lại một chuỗi bao gồm giá trị của while (condition): // Code here will be executed if the condition is met endwhile;2. Sau đó, chúng tôi tăng giá trị của while (condition): // Code here will be executed if the condition is met endwhile;2 lên while (condition): // Code here will be executed if the condition is met endwhile;3
<?php $x=1; while ($x <= 5) { echo "The value of x is " . $x . "<br>"; $x++; } echo "I have left the while loop."; ?>Như bạn có thể thấy bên dưới, chúng tôi đã lặp cho đến khi while (condition): // Code here will be executed if the condition is met endwhile;2 đạt tới <?php $x=1; while ($x <= 5) { echo "The value of x is " . $x . "<br>"; $x++; } echo "I have left the while loop."; ?>0 và biến điều kiện (<?php $x=1; while ($x <= 5) { echo "The value of x is " . $x . "<br>"; $x++; } echo "I have left the while loop."; ?>1) thành sai
Khi điều kiện là sai, chúng tôi tiếp tục câu lệnh echo sau vòng lặp while
The value of x is 1 The value of x is 2 The value of x is 3 The value of x is 4 The value of x is 5 I have left the while loop.Vòng lặp while Sử dụng dấu hai chấm và endwhile
Trong ví dụ này, chúng tôi sẽ không sử dụng dấu ngoặc nhọn mà sử dụng dấu hai chấm và dấu cuối để đặt mã của chúng tôi. Tuy nhiên, hành vi hoàn toàn giống như sử dụng vòng lặp while với dấu ngoặc nhọn
Trong đoạn mã dưới đây, trước tiên chúng ta tạo một biến tên là y và gán cho nó giá trị là while (condition): // Code here will be executed if the condition is met endwhile;5
Điều kiện của vòng lặp while nói rằng chừng nào <?php $x=1; while ($x <= 5) { echo "The value of x is " . $x . "<br>"; $x++; } echo "I have left the while loop."; ?>3 còn lớn hơn <?php $x=1; while ($x <= 5) { echo "The value of x is " . $x . "<br>"; $x++; } echo "I have left the while loop."; ?>4, hãy tiếp tục đến lần lặp tiếp theo
Mã của chúng tôi bên trong vòng lặp while sẽ xuất giá trị của <?php $x=1; while ($x <= 5) { echo "The value of x is " . $x . "<br>"; $x++; } echo "I have left the while loop."; ?>3 trước khi trừ đi while (condition): // Code here will be executed if the condition is met endwhile;3 khỏi giá trị của <?php $x=1; while ($x <= 5) { echo "The value of x is " . $x . "<br>"; $x++; } echo "I have left the while loop."; ?>3
<?php $y=5; while ($y > 0): echo "The value of y is " . $y . "<br>"; $y--; endwhile; echo "I have left the while loop."; ?>Trong kết quả của chúng tôi bên dưới, bạn có thể thấy giá trị của <?php $x=1; while ($x <= 5) { echo "The value of x is " . $x . "<br>"; $x++; } echo "I have left the while loop."; ?>3 giảm dần trên mỗi vòng lặp cho đến khi kết quả cuối cùng của <?php $x=1; while ($x <= 5) { echo "The value of x is " . $x . "<br>"; $x++; } echo "I have left the while loop."; ?>3 là while (condition): // Code here will be executed if the condition is met endwhile;3
Trong lần lặp cuối cùng, <?php $x=1; while ($x <= 5) { echo "The value of x is " . $x . "<br>"; $x++; } echo "I have left the while loop."; ?>3 là <?php $x=1; while ($x <= 5) { echo "The value of x is " . $x . "<br>"; $x++; } echo "I have left the while loop."; ?>4 và không còn phù hợp với yêu cầu của điều kiện vòng lặp. Vì điều kiện là sai, nên nó bỏ qua mã bên trong của vòng lặp và in ra câu lệnh echo cuối cùng sau vòng lặp của chúng ta
The value of y is 5 The value of y is 4 The value of y is 3 The value of y is 2 The value of y is 1 I have left the while loop.Thoát ra khỏi vòng lặp một lúc
Có thể đôi khi bạn muốn kết thúc sớm vòng lặp while. Ví dụ: bạn tìm thấy một phần dữ liệu mà bạn đang tìm kiếm và bây giờ không cần phải tiếp tục lặp qua phần còn lại của dữ liệu. Để làm điều này trong PHP, bạn chỉ cần sử dụng The value of x is 1 The value of x is 2 The value of x is 3 The value of x is 4 The value of x is 5 I have left the while loop.3
Trong đoạn mã dưới đây, chúng tôi tạo một biến có tên là The value of x is 1 The value of x is 2 The value of x is 3 The value of x is 4 The value of x is 5 I have left the while loop.4 và gán cho nó giá trị là while (condition): // Code here will be executed if the condition is met endwhile;3
Trong vòng lặp while, chúng ta có một điều kiện cho biết chừng nào The value of x is 1 The value of x is 2 The value of x is 3 The value of x is 4 The value of x is 5 I have left the while loop.4 nhỏ hơn hoặc bằng while (condition): // Code here will be executed if the condition is met endwhile;5 thì tiếp tục vòng lặp
Bên trong vòng lặp while, chúng tôi lặp lại giá trị của The value of x is 1 The value of x is 2 The value of x is 3 The value of x is 4 The value of x is 5 I have left the while loop.4. Sau đó, chúng tôi tăng giá trị của The value of x is 1 The value of x is 2 The value of x is 3 The value of x is 4 The value of x is 5 I have left the while loop.4 lên while (condition): // Code here will be executed if the condition is met endwhile;3
Chúng tôi có một câu lệnh if bổ sung tuyên bố nếu The value of x is 1 The value of x is 2 The value of x is 3 The value of x is 4 The value of x is 5 I have left the while loop.4 bằng <?php $y=5; while ($y > 0): echo "The value of y is " . $y . "<br>"; $y--; endwhile; echo "I have left the while loop."; ?>2, The value of x is 1 The value of x is 2 The value of x is 3 The value of x is 4 The value of x is 5 I have left the while loop.3 ngoài vòng lặp
<?php $z=1; while ($z <= 5) { if ($z == 3){ break; } echo "The value of z is " . $z . "<br>"; $z++; } echo "I have left the while loop."; ?>Như bạn có thể thấy trong đầu ra của chúng tôi bên dưới, mã đã ngừng xuất ở giá trị của <?php $y=5; while ($y > 0): echo "The value of y is " . $y . "<br>"; $y--; endwhile; echo "I have left the while loop."; ?>4. Nó không xuất ra <?php $y=5; while ($y > 0): echo "The value of y is " . $y . "<br>"; $y--; endwhile; echo "I have left the while loop."; ?>2 vì câu lệnh break của chúng ta ở trước câu lệnh echo của chúng ta
The value of z is 1 The value of z is 2 I have left the while loop.Sử dụng continue Inside a while Loop
Đôi khi, bạn có thể cần bỏ qua việc xử lý một giá trị nhưng tiếp tục lặp qua dữ liệu. Ví dụ: bạn có thể sử dụng <?php $y=5; while ($y > 0): echo "The value of y is " . $y . "<br>"; $y--; endwhile; echo "I have left the while loop."; ?>6 để yêu cầu PHP chuyển sang bước lặp tiếp theo mà không cần thực thi thêm bất kỳ mã nào
Trong đoạn mã dưới đây, chúng ta tạo một biến có tên là <?php $y=5; while ($y > 0): echo "The value of y is " . $y . "<br>"; $y--; endwhile; echo "I have left the while loop."; ?>7 và gán cho nó giá trị là while (condition): // Code here will be executed if the condition is met endwhile;3
Đối với vòng lặp while, chúng ta có một điều kiện cho biết chừng nào <?php $y=5; while ($y > 0): echo "The value of y is " . $y . "<br>"; $y--; endwhile; echo "I have left the while loop."; ?>7 nhỏ hơn hoặc bằng while (condition): // Code here will be executed if the condition is met endwhile;5 thì tiếp tục vòng lặp
Bên trong vòng lặp while, chúng tôi lặp lại giá trị của <?php $y=5; while ($y > 0): echo "The value of y is " . $y . "<br>"; $y--; endwhile; echo "I have left the while loop."; ?>7. Sau đó, chúng tôi tăng giá trị của <?php $y=5; while ($y > 0): echo "The value of y is " . $y . "<br>"; $y--; endwhile; echo "I have left the while loop."; ?>7 lên while (condition): // Code here will be executed if the condition is met endwhile;3
Chúng tôi cũng có một câu lệnh if bổ sung tuyên bố nếu <?php $y=5; while ($y > 0): echo "The value of y is " . $y . "<br>"; $y--; endwhile; echo "I have left the while loop."; ?>7 bằng <?php $y=5; while ($y > 0): echo "The value of y is " . $y . "<br>"; $y--; endwhile; echo "I have left the while loop."; ?>4, tăng ______21_______7 bằng ____1_______3 và ____21_______6 cho lần lặp tiếp theo
<?php $w=1; while ($w <= 5) { if ($w == 2){ $w++; continue; } echo "The value of y is " . $w . "<br>"; $w++; } echo "I have left the while loop."; ?>Như bạn có thể thấy trong ví dụ của chúng tôi bên dưới, mã không xuất ra bất kỳ thứ gì khi <?php $y=5; while ($y > 0): echo "The value of y is " . $y . "<br>"; $y--; endwhile; echo "I have left the while loop."; ?>7 bằng <?php $y=5; while ($y > 0): echo "The value of y is " . $y . "<br>"; $y--; endwhile; echo "I have left the while loop."; ?>4. Tuy nhiên, không giống như The value of x is 1 The value of x is 2 The value of x is 3 The value of x is 4 The value of x is 5 I have left the while loop.3, nó tiếp tục với vòng lặp và in các số còn lại cho đến khi điều kiện trở thành sai
The value of w is 1 The value of w is 3 The value of w is 4 The value of w is 5 I have left the while loop.Vòng lặp vô hạn
Bạn cần cẩn thận khi tạo một vòng lặp vô hạn. Ví dụ: bạn có thể vô tình viết một điều kiện sẽ không bao giờ sai
Trong trường hợp bất thường, bạn có thể muốn làm điều này một cách có chủ ý, chẳng hạn như khi bạn cần một máy chủ chạy các quy trình liên tục. Tuy nhiên, không chắc bạn sẽ cần sử dụng các vòng lặp vô hạn khi mới bắt đầu và thường có những kỹ thuật đạt được cùng một nhiệm vụ hiệu quả hơn
Để khiến vòng lặp while bị mắc kẹt trong một vòng lặp vô hạn, bạn có thể sử dụng điều kiện là while (condition): // Code here will be executed if the condition is met endwhile;3 hoặc <?php $z=1; while ($z <= 5) { if ($z == 3){ break; } echo "The value of z is " . $z . "<br>"; $z++; } echo "I have left the while loop."; ?>3, như minh họa trong ví dụ bên dưới
while (condition): // Code here will be executed if the condition is met endwhile;0May mắn thay, nếu bạn vô tình viết một vòng lặp vô hạn, PHP có thời gian chờ là 120 giây. Sau 120 giây, PHP sẽ chấm dứt tập lệnh. Bạn có thể thay đổi hành vi này bằng cách chỉnh sửa tệp PHP ini
Để chấm dứt tập lệnh bị mắc kẹt trong vòng lặp vô hạn, bạn có thể cần phải hủy quá trình hoặc nếu có thể, bạn có thể sử dụng CTRL + C trong thiết bị đầu cuối
Phần kết luận
Vòng lặp while cực kỳ mạnh mẽ và bạn có thể sẽ thấy mình sử dụng chúng trong dự án PHP tiếp theo của mình khá nhiều. Tôi hy vọng rằng hướng dẫn này đã bao gồm tất cả những điều cơ bản và bây giờ bạn đã hiểu rõ về vòng lặp while trong PHP
Có một số loại vòng lặp khác mà bạn sẽ thấy cực kỳ hữu ích khi viết dự án PHP tiếp theo của mình. Ví dụ: bạn có thể thấy vòng lặp for, vòng lặp do-while hoặc thậm chí vòng lặp foreach hữu ích. Mỗi vòng lặp đều có những lợi ích của nó, vì vậy tôi khuyên bạn nên kiểm tra từng vòng lặp đó
Nếu có bất cứ điều gì mà chúng tôi có thể cải thiện với hướng dẫn này, hãy cho chúng tôi biết bằng cách để lại nhận xét bên dưới