V. Các Cấu Trúc Điều Khiển (Continued)
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 bạn tự động thực hiện một đoạn mã lệnh nào
đó lặp đi lặp lại nhiều 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 ở 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;
}
?>
Ví dụ 2: Đoạn mã sau sẽ hiển thị trên trình duyệt 3 ô textbox (Với điều kiện bạn 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, nhưng 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 bạn chỉ việc
thay điều kiện $i<=3 thành $i<1, bạn sẽ thấy hai kết quả khác nhau
liền . Phần này dành cho bạn tự ngồi nghĩ. OK???
Quên mất, lúc nãy tôi đề cập đến lệnh break, nhưng chưa cho ví dụ, bây giờ chúng ta hãy xem xét ví dụ 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: http://dia_chi_trang_web_cua_ban/giaithua.php?n=xx (ở đó x là một số do người dùng 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 dùng 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 xem 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 tất cả 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 có thể khác nhau, nhưng bản chất của chúng thì mãi mãi
không bao giờ thay đổi.
Đăng ký:
Đăng Nhận xét (Atom)
Học lập trình web căn bản với PHP
Bài 1: Các kiến thức căn bản Part 1: https://jimmyvan88.blogspot.com/2012/05/can-ban-lap-trinh-web-voi-php-bai-1-cac.html Part 2: https://...
-
IMindMap 8.0.4 iMindMap là công cụ tuyệt vời để vẽ bản đồ tư duy đem mọi chi tiết trong đầu bạn ra thành các ý tươgnr, để nắm bắt ý tư...
-
1. Download Bamboo in : http://www.atlassian.com/software/bamboo/download?os=linux cd ~ mkdir BAMBOO cd BAMBOO wget http://www.atlassia...
-
1.Giới thiệu về Vim Vim – Vi iMprove là bản cải thiện của Vim – một trình soạn thảo phổ biến trên Unix. Vim có tính cấu hình rất cao ...
Không có nhận xét nào:
Đăng nhận xét