Hướng dẫn dùng do-while loop trong PHP
Trong bài này, chúng ta sẽ tìm hiểu về vòng lặp while và do…while trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP. Show
Vòng lặp
với Nguyên lý hoạt động của vòng lặp while như sau:Kiểm tra <điều kiện lặp>, nếu <điều kiện lặp> đúng (true) thì dòng lệnh trong while sẽ được thực thi. Quá trình kiểm tra <điều kiện lặp> và thực thi dòng lệnh trong while sẽ chấm dứt cho đến khi <điều kiện lặp> sai (false). Tức là, nếu bất cứ khi nào <điều kiện lặp> sai (false) thì vòng lặp while sẽ chấm dứt. Ví dụ hiển thị số 1 đến 5 trong PHP
Kết quả
2. Vòng lặp do…while trong PHPVòng lặp
với <điều kiện lặp> thường là biểu thức với các toán tử quan hệ, kết quả trả về là true (0) hoặc false (0). Nguyên lý hoạt động của vòng lặp do while như sau:Thực thi dòng lệnh trong do while trước. Sau đó, kiểm tra <điều kiện lặp>, nếu <điều kiện lặp> đúng (true) thì thực thi dòng lệnh trong do while lần nữa. Quá trình kiểm tra <điều kiện lặp> và thực thi dòng lệnh trong do while sẽ chấm dứt cho đến khi <điều kiện lặp> sai (false). Tức là, nếu bất cứ khi nào <điều kiện lặp> sai (false) thì vòng lặp do while sẽ chấm dứt.
Kết quả
Bên dưới là một ví dụ khác nữa của vòng lặp do while:
Kết quả
Trong ví dụ trên, vòng lặp do while sẽ chạy một lần và hiện thị ra giá trị của $x. Sau đó, kiểm tra điều kiện $x <= 5 thì không thỏa nên dừng vòng lặp. 3. Vòng lặp while vô hạn trong PHPNếu
Lưu ý: Cần tránh trường hợp <điều kiện lặp> luôn luôn là true sẽ dẫn đến vòng lặp vô hạn. Cũng có những trường hợp cần vòng lặp vô hạn nhưng không nhiều trường hợp như vậy. Lúc này, cần cân nhắc kỹ trước khi sử dụng vòng lặp vô hạn.
PHP programming web programming 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 while và do while trong php. Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
1. Cấu trúc vòng lặp whileCú pháp: while ($condition) { // dòng lệnh } Trong đó Bài viết này được đăng tại [free tuts .net] Ví dụ: Dùng vòng lặp while trong php liệt kê các số từ 1 tới 10. Để giải bài toán này ta có thể dùng vòng lặp for trong php để giải một cách dễ dàng. for ($i = 1; $i <= 10; $i++){ echo $i . ' - '; } Nhưng đề bài bắt buộc dùng vòng lặp while, vì thế các bạn xem bài giải sau: $i = 1; // Biến dùng để lặp while ($i <= 10){ // Nếu $i <= 10 thì mới lặp echo $i . ' - '; // Xuất ra màn hình $i++; // Tăng biến $i lên 1 } Giải thích:
Lần lặp 1:
Biến Lần lặp 2: Biến Tương tự lần lặp 3, 4, 5,
6, 7, 8, 9: Sau vòng lặp thứ 9 biến Lần lặp 10: Biến Lần lặp 11: Biến Kết thúc: Kết hợp các kết quả lại với nhau thì màn hình sẽ in ra dòng “1 – 2 – 3 – 4 – 5 – 6 – 7 – 8 – 9 – 10 – “.
Ví dụ: $i = 0; $j = 10; while ($i < 100 && $j > 5){ $i++; $j -= 2; } Vòng lặp này sẽ thực hiện 3 lần. Lần 1: $i = 0, $j = 10, kiểm tra điều kiện thấy ( 0 < 100 && 10 > 5 ) => true nên vòng lặp thực hiện tăng $i lên và giảm $j xuống 2. Lúc này $i = 1, $j = 8. Lần 2: $i = 1, $j = 8, kiểm ta điều kiện thấy ( 1 < 100 && 8 > 5 ) => true nên vòng lặp thực hiện tăng $i lên 1 và giảm $j xuống 2. Lúc này $i = 2, $j = 6. Lần 3: $i = 2, $j = 6, kiểm tra điều kiện thấy ( 2 < 100 && 6 > 5 ) => true nên vòng lặp thực hiện tăng $i lên 1 và giảm $j xuốn 2. Lúc này $i = 3, $j = 4. Lần 4: $i = 3, $j = 4, kiểm tra điều kiện thấy (3 < 100 && 4 > 5) => false, điều kiện sai nên vòng lặp kết thúc (vòng 4 không được thực hiện). 2. Cấu trúc vòng lặp do whileVòng lặp while sẽ kiểm tra điều kiện trước rồi thực hiện câu lệnh bên trong vòng lặp, còn vòng lặp do while thì ngược lại sẽ thực hiện câu lệnh bên trong vòng lặp trước rồi mới kiểm tra điều kiện. Nếu điều kiện đúng thì sẽ thực hiện tiếp vòng lặp kế tiếp, nếu điều kiện sai thì sẽ dừng vòng lặp. Vòng lặp do while trong php luôn luôn thực hiện ít nhất một lần lặp vì nó thực hiện trước rồi mới kiểm tra điều kiện. Cú pháp: do { // dòng lệnh } while ($condition); Đừng quên đặt dấu chấm phẩy Ví dụ: $i = 1; do{ echo $i; $i++; }while ($i <= 10); Chương trình này thực hiện xuất ra màn hình các số từ 1 tới 10. Giải thích tương tự như while, ở mỗi bước lặp sẽ xuất ra màn hình biến $i, sau đó tăng $i lên 1, và cuối cùng kiểm tra điều kiện nếu ($i <= 10) đúng thì sẽ lặp vòng tiếp theo, ngược lại sẽ dừng vòng lặp. Ví dụ: $i = 1; do{ echo $i; $i++; }while ($i < 1); Vòng lặp này sẽ lặp 1 lần tại vì nó thực hiện do xong rồi mới kiểm tra điều kiện while. Đây là lý do tại sau tôi nói vòng lặp while luôn thực hiện ít nhất 1 lần.
3. Một bài toán có thể giải ở cả ba vòng lặp không?Câu trả lời là có thể có và có thể không. Như với ví dụ ở trên thì với vòng lặp for ta không thể thực hiện được. $i = 0; $j = 10; while ($i < 100 && $j > 5){ $i++; $j -= 2; } Ví dụ: In ra màn hình các số từ 100 đến 200; Dùng vòng lặp for: for ($i = 100; $i <= 200; $i++){ echo $i; } Dùng vòng lặp while: $i = 100; while ($i <= 200){ echo $i; $i++; // Tăng $i lên 1 } Dòng vòng lặp do while: $i = 100; do { echo $i; $i++; } while ($i <= 200); 4. Khi nào thì sử dụng vòng lặp for, while, do whileVấn đề này tùy vào kinh nghiệm của từng người. nhưng có một điểm chung để ta có thể xác định được là: Những bài toán lặp theo một trình tự nhất định, các bước lặp cách đều nhau (1,2,3,4) và phải biết được tổng số lần lặp thì ta dùng vòng lặp for. Ngược lại những bài toán khác thì ta dùng vòng lặp while hoặc do … while 5. Vòng lặp while, do while lồng nhauCũng như vòng lặp for và mệnh đề if, vòng lặp while và vòng lặp do while có thể lồng nhau để giải quyết bài toán của chúng ta. Ví dụ: $i = 1; while ($i < 10) { $j = $i; while ($j < 10) { echo $j; $j++; } echo ' '; $i++; } Vòng lặp này sẽ xuất ra màn hình một hình tam giác với các con số: 123456789 Tổng số lần lặp chính là bằng tích số lần lặp của 2 vòng lặp cộng thêm số lần lặp của vòng lặp cha. Ví dụ vòng lặp 1 lặp 10 lần, vòng lặp 2 lặp 10 lần thì tổng số vòng lặp sẽ là 10 x 10 + 10 = 110 lần. Vì thế chi phí để lặp lồng nhau rất cao. 6. Vòng lặp while, do while trong việc truy xuất mảngTương tự như vòng lặp for, vòng lặp while và do while có thể dùng để truy xuất các phần tử trong mảng chỉ mục. Ví dụ: // Cho Danh Sách Năm $nam = array( 1990, 1991, 1992, 1993, 1994, 1995 ); // Xuất theo cách thông thường echo $nam[0]; echo $nam[1]; echo $nam[2]; echo $nam[3]; echo $nam[4]; echo $nam[5]; // Dùng while $i = 0; while ($i <= 5){ echo $nam[$i]; $i++; // Tăng biến $i } // Dùng do .. while $i = 0; do { echo $nam[$i]; $i++; }while ($i <=5); 7. Lời kếtTrong bài học này các bạn đã được học vòng lặp while và do while, vậy tổng cộng chúng ta đã được học ba vòng lặp đó là if, while và do while. Trong bài tiếp theo chúng ta sẽ tìm hiểu một vòng lặp chuyên dùng xử lý mảng trong php, đó là vòng lặp foreach. |