ในบทความนี้จะสอนถึงการวนลูปในรูปแบบคำสั่ง while บ้างนะครับ ซึ่งในคำสั่ง while loop นี้ได้แบ่งออกเป็นคำสั่ง while และคำสั่ง do .. while() แต่คำสั่ง 2 แบบนี้มีความหมายต่างกันเพียงนิดเดียวเท่านั้นครับ (ซึ่งผมได้กล่าวไว้ในหมวดหมู่ Control Structure ของ PHP แล้วครับ) เราเริ่มไปดูตัวอย่างกันเลยครับ
ตัวอย่างการใช้งานคำสั่ง while()
01.
<?php
02.
// การแสดงตัวเลขตั้งแต่ 1 ถึง 10
03.
$i
= 1;
04.
while
(
$i
<= 10) {
05.
echo
"$i "
;
06.
$i
++;
07.
}
08.
echo
"<br />"
;
09.
10.
// การแสดงตัวเลขตั้งแต่ 1-10 อีกวิธี
11.
$i
= 1;
12.
while
(true) {
13.
if
(
$i
> 10) {
14.
break
;
15.
}
16.
echo
"$i "
;
17.
$i
++;
18.
}
19.
echo
"<br />"
;
20.
21.
// ตัวอย่างการวนลูปเพื่อแสดงแม่สูตรคูณ
22.
$i
= 2;
23.
while
(
$i
<= 12) {
24.
$j
= 1;
25.
while
(
$j
<= 12) {
26.
echo
"$i * $j = "
. (
$i
*
$j
) .
"<br />"
;
27.
$j
++;
28.
}
29.
echo
"<br />"
;
30.
$i
++;
31.
}
32.
echo
"<br />"
;
33.
34.
?>
ตัวอย่างการใช้งานคำสั่ง do ... while()
01.
<?php
02.
// การแสดงตัวเลขตั้งแต่ 1 ถึง 10
03.
$i
= 1;
04.
do
{
05.
echo
"$i "
;
06.
$i
++;
07.
}
while
(
$i
<= 10);
08.
echo
"<br />"
;
09.
10.
// การแสดงตัวเลขตั้งแต่ 1-10 อีกวิธี
11.
$i
= 1;
12.
do
{
13.
if
(
$i
> 10) {
14.
break
;
15.
}
16.
echo
"$i "
;
17.
$i
++;
18.
}
while
(true);
19.
echo
"<br />"
;
20.
21.
// ตัวอย่างการวนลูปเพื่อแสดงแม่สูตรคูณ
22.
$i
= 2;
23.
do
{
24.
$j
= 1;
25.
do
{
26.
echo
"$i * $j = "
. (
$i
*
$j
) .
"<br />"
;
27.
$j
++;
28.
}
while
(
$j
<= 12) ;
29.
echo
"<br />"
;
30.
$i
++;
31.
}
while
(
$i
<= 12) ;
32.
echo
"<br />"
;
33.
34.
?>
ข้อแตกต่างของ while() กับ do...while()
01.
<?php
02.
/*
03.
สมมติในกรณีที่เราต้องการแสดงสูตรคูณตั้งแต่แม่ 12 - 1
04.
แต่ผมได้กำหนดให้ค่า $i = 13
05.
ซึ่งเราจะเห็นถึงความแตกต่างได้ตรงนี้ครับ
06.
*/
07.
08.
$i
= 13;
09.
echo
"While Loop:<br />"
;
10.
while
((
$i
>= 0) && (
$i
<=12)) {
11.
$j
= 1;
12.
while
(
$j
<= 12) {
13.
echo
"$i * $j = "
. (
$i
*
$j
) .
"<br />"
;
14.
$j
++;
15.
}
16.
echo
"<br />"
;
17.
$i
--;
18.
}
19.
20.
$i
= 13;
21.
echo
"Do While Loop:<br />"
;
22.
do
{
23.
$j
= 1;
24.
do
{
25.
echo
"$i * $j = "
. (
$i
*
$j
) .
"<br />"
;
26.
$j
++;
27.
}
while
(
$j
<= 12);
28.
echo
"<br />"
;
29.
$i
--;
30.
}
while
((
$i
>= 0) && (
$i
<= 12));
31.
?>
จะเห็นว่าถ้าเราใช้คำสั่ง do ... while() มันจะเข้าทำงานในบล็อกคำสั่งก่อนแล้วค่อยตรวจสอบเงื่อนไข ซึ่งในกรณีนี้เราได้กำหนดให้ค่า $i = 13 ดังนั้นถ้าใช้คำสั่ง while มันจะทำการตรวจสอบเงื่อนไขก่อนว่า $i มีค่าน้อยกว่าหรือ เท่ากับ 12 หรือไม่ (ไม่เท่า) ดังนั้นมันจึงไม่ทำงานในบล็อกคำสั่ง แต่ถ้าเราใช้คำสั่ง do ... while() มันจะทำงานในบล็อกก่อน แล้วค่อยตรวจสอบเงื่อนไขที่กำหนดไว้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น