Lệnh điều khiển vòng lặp
Điều khiển vòng lặp, tức là bạn điều khiển chương trình của chúng ta tự động thực hiện một đoạn mã lệnh nào đó lặp đi lặp lại đủ thứ lần (lặp một số lượng lần nào đó, hoặc lặp cho đến khi thoả mãn một điều kiện nào đó).
PHP cung cấp cho chúng ta hai kiểu vòng lặp: vòng lặp while (lặp kiểm tra điều kiện, cho đến khi điều kiện được thoả mãn) và vòng lặp for (xác định số lần lặp lại)
a) Vòng lặp while
Vòng lặp while là một dạng vòng lặp đơn giản nhất, cấu trúc của nó gần giống như lệnh if:
while (điều kiện)
{
//Khoi cau lenh can lap
}
Vòng lặp while sẽ ước lượng một biểu thức giá trị kiểu boolean (đúng hoặc sai).Nếu giá trị của biểu thức là false, đoạn mã trong cặp dấu ngoặc (đoạn mã cần lặp) sẽ được bỏ qua và nhảy đến đoạn mã sau vòng lặp. Nếu giá trị của nó là true, đoạn mã trong cặp dấu ngoặc sẽ được thực thi. Khi bắt gặp dấu ngoặc ôm ("}") , điều kiện kiểm tra sẽ được tính toán lại, và nếu giá trị vẫn là true, đoạn mã trong ngoặc lại tiếp tục được thực thi. Chú ý rằng điều kiện lặp chỉ được tính toán tại thời điểm bắt đầu lặp. Vì vậy, dù điều kiện lặp có bị thay đổi trong quá trình thực thi đoạn lệnh trong cặp dấu thì đoạn lệnh đó vẫn được tiếp tục thực hiện cho đến hết. Muốn dừng lại tại một vị trí xác định nào đó trong khối câu lệnh, chúng ta sử dụng lệnh break:
Ví dụ1: Tính tổng từ 1 đến 5:
<?php
$i=0;
$tong=0;
while ($i<=5)
{
$tong=$tong+$i;
$i+=1;
}
?>
mẫu 2: Đoạn mã sau sẽ hiển thị trên trình duyệt 3 ô textbox (Với điều kiện chúng ta phải save nó dưới một file *.php :
<HTML>
<TABLE>
<BODY>
<?php
$i=1;
while ($i<=3)
{
?>
<TR><TD> <INPUT type="text"> </TD></TR>
<?php
$i+=1;
}
?>
</table>
</body>
</html>
b. Vòng lặp do...while
Vòng lặp này giống như vòng lặp while, Mặc dù vậy thay vì kiểm tra điều kiện vào lúc đầu của đoạn lệnh cần lặp, thì nó lại kiểm tra giá trị điều kiện vào cuối vòng lặp. Điều này có nghĩa là nó luôn luôn thực hiện đoạn lệnh cần lặp ít nhất một lần.
Cấu trúc của nó như sau:
do
{ Đoạn (khối) câu lệnh cần lặp
} while (điều kiện);
Ví dụ:
<HTML>
<TABLE>
<BODY>
<?php
$i=1;
do
{
?>
<TR><TD> <INPUT type="text"> </TD></TR>
<?php
$i+=1;
}while ($i<=3);
?>
</table>
</body>
</html>
Để xác định lại sự khác nhau của 2 câu lệnh trên, đơn giản ta chỉ việc thay điều kiện $i<=3 thành $i<1, chúng ta sẽ thấy hai kết quả khác nhau liền . Phần này dành cho ta tự ngồi nghĩ. OK???
Quên mất, lúc nãy tôi đề cập đến lệnh break, Mặc dù vậy chưa cho ví dụ, bây giờ chúng ta hãy quan sát xét example sau:
Các bạn biết rằng giai thừa là một con số lớn kinh khủng, và chương trình của chúng ta sẽ tính toán n giai thừa, với số n được gửi đến theo địa chỉ url: Nhanhoa.com - Offline (ở đó x là một số do mọi người tự nhập)
Do giai thừa là một con số cực kỳ lớn, nên chúng ta chỉ cho phép người dùng tính đến tối đa là 8 giai thừa chẳng hạn. Nếu họ nhập lớn hơn 8 thì sao? Hãy xem đây:
<HTML>
<?php
// Ghi lai voi ten file la giaithua.php
$giaithua=1;
$i=1;
while ( $i<=$n)
{
$giaithua*=$i;
$i+=1;
if ($i>8 )
{
echo ("Chi tinh den 8! <BR>");
break;
}
}
echo ("Ket qua la: ".$giaithua);
?>
</HTML>
Đoạn mã trên chỉ cho phép tính đến 8 giai thừa, nếu người sử dung nhập một con số lớn hơn 8 thì máy sẽ hiển thị 8 giai thừa, còn nếu nhỏ hơn thì vẫn chạy tốt.
c) Vòng lặp for.
Vòng lặp for, với ý nghĩa đầu tiên là lặp với số lần định trước, có cấu trúc như sau:
for ( $biến = giá_trị_đầu; $biến < (hay <=) giá_trị_kết_thúc; tăng_biến_đếm)
{
// Khối câu lệnh
}
Biểu thức $biến=giá_trị_đầu, đảm bảo biến được gán một giá trị khởi đầu (1)
Biểu thức $biến< (hay <=) giá_trị_kết_thúc, sẽ xác định view biến đã đạt đến giá trị kết thúc (tức là điều kiện lặp không còn đúng nữa) chưa (2)
Biểu thức tính toán tăng_biến_đếm đảm bảo để sau một số lần lặp nào đó thì biểu thức xác định điều kiện (2) sẽ dẫn đến kết quả sai (để thoát khỏi vòng lặp).
Ví dụ:
for ( $i = 1; $i <10; ++$i)
{
echo ("Giá trị của biến \$i là: ".$i);
}
Một biến dạng khác của vòng lặp for, gần giống như lệnh rẽ nhánh if và while:
for (bieu_thuc_1; bieu_thuc_2; bieu_thuc_3):
// Khối câu lệnh
endfor;
Ví dụ:
<?php
for ($i=1; $i<=10;++$i)
?>
<TR><TD> <INPUT type="text"> </TD></TR>
<?php
endfor
?>
OK, Như vậy các bạn đã học qua các lệnh cơ bản nhất của php, và cũng là các lệnh cơ bản của hầu hết các ngôn ngữ lập trình (gán, rẽ nhánh và lặp). Sau này nếu phải triển khai trên các ngôn ngữ lập trình khác, cách viết các lệnh này không phải là không khác nhau, Nhưng bản chất của chúng thì mãi mãi không bao giờ thay đổi.
- Blogger Comment
- Facebook Comment
Đăng ký:
Đăng Nhận xét
(
Atom
)
0 nhận xét:
Đăng nhận xét