บ่อยครั้งในการเขียนโปรแกรมที่เราต้องการให้โค้ดส่วนหนึ่งมีการทำงานซ้ำ ๆ แทนที่เราจะทำการ copy โค้ดบรรทัดนั้นมาวางในบรรทัดต่อ ๆ ไป เราสามารถใช้คำสั่งทำซ้ำเพื่อลดการเขียนโค้ดซ้ำ โดยในคำสั่งทำซ้ำโปรแกรมจะทำงานซ้ำไปเรื่อย ๆ เท่ากับจำนวนครั้งตามเงื่อนไขที่กำหนดไว้ หมายความว่าถ้ายังตรงตามเงื่อนไขอยู่โปรแกรมก็จะทำงานซ้ำต่อไป ซึ่งอาจเกิดกรณีเลวร้ายที่โปรแกรมทำงานซ้ำไปเรื่อย ๆ ไม่มีที่สิ้นสุดได้ ดังนั้นเราจึงจำเป็นต้องกำหนดเงื่อนไขอย่างระมัดระวัง คำสั่งสำหรับการทำซ้ำแบ่งออกเป็นคำสั่ง while , คำสั่ง do...while , คำสั่ง for และคำสั่ง foreach
คำสั่ง while
<?php
/********** Syntax **********/
while( เงื่อนไข )
{
//การทำงาน
}
/********** ตัวอย่าง **********/
$count = 1;
while( $count <= 5 )
{
echo "นับหมายเลข: $x <br>";
$count++; // ทำการเพิ่มค่าให้กับตัวแปร $count ไปอีก 1 ค่า
}
?>
คำสั่ง while( เงื่อนไข ) จะทำงานโดยการเช็คเงื่อนไขภายในวงเล็บก่อน ถ้าเงื่อนไขนั้นเป็นจริง โปรแกรมจะทำงานตามโค้ดที่ระบุไว้ภายในปีกกา และจะทำงานซ้ำต่อไปเรื่อย ๆ จนกว่าเงื่อนไขนั้นจะเป็นเท็จ จากตัวอย่างจะเห็นได้ว่าถ้าไม่มีคำสั่งสำหรับเพิ่มค่าให้กับตัวแปร $count โปรแกรมจะทำงานซ้ำต่อไปเรื่อย ๆ ไม่มีที่สิ้นสุด ดังนั้นเวลาเพื่อน ๆ ใช้งานคำสั่ง while( เงื่อนไข ) จะต้องตรวจสอบว่าเงื่อนไขมีจุดสิ้นสุดก่อนเสมอคำสั่ง do...while
<?php
/********** Syntax **********/
do
{
//การทำงาน
} while( เงื่อนไข )
/********** ตัวอย่าง **********/
$count = 1;
do
{
echo "นับหมายเลข: $count <br>";
$count++; // ทำการเพิ่มค่าให้กับตัวแปร $count ไปอีก 1 ค่า
} while( $count <= 5 );
?>
คำสั่ง do...while( เงื่อนไข ) จะมีการทำงานคล้าย ๆ กับคำสั่ง while( เงื่อนไข ) แต่มีจุดที่ต่างกันเล็กน้อยคือคำสั่ง do...while( เงื่อนไข ) จะทำงานตามโค้ดที่ระบุไว้ภายในปีกกาก่อนครั้งนึง แล้วจึงจะตรวจสอบเงื่อนไขภายในวงเล็บ ถ้าเงื่อนไขนั้นเป็นจริงก็จะทำงานซ้ำต่อ แต่ถ้าเงื่อนไขนั้นเป็นเท็จก็จะหยุดทำงานคำสั่ง for
<?php
/********** Syntax **********/
for( กำหนดค่า; เงื่อนไข; เพิ่มหรือลดค่า; )
{
//การทำงาน
}
/********** ตัวอย่าง **********/
for( $count = 0; $count <= 9; $count++; )
{
echo "หมายเลข: $count <br>";
}
?>
คำสั่ง for( กำหนดค่า; เงื่อนไข; เพิ่มหรือลดค่า; ) เหมาะสำหรับการใช้งานในกรณีที่เราคาดเดาได้ว่าจะต้องทำซ้ำเป็นจำนวนเท่าไหร่ โดยในวงเล็บจะมีการกำหนดต่าง ๆ ดังนี้
- กำหนดค่า: เป็นการกำหนดค่าเริ่มต้นของในการทำซ้ำ
- เงื่อนไข: เป็นการกำหนดเงื่อนไข ถ้าเงื่อนไขเป็นจริงก็จะทำการวนซ้ำต่อ แต่ถ้าเงื่อนไขเป็นเท็จก็จะหยุดการทำงานทันที
- เพิ่มหรือลดค่า: เป็นการเพิ่มหรือลดค่าเริ่มต้น
คำสั่ง foreach
<?php
/********** Syntax **********/
foreach( ตัวแปรอะเรย์ as ค่าอ้างอิง=>ค่าที่เก็บไว้ )
{
//การทำงาน
}
/********** ตัวอย่าง **********/
$dayList = array("วันจันทร์", "วันอังคาร", "วันพุธ", "วันพฤหัสบดี", "วันศุกร์", "วันเสาร์", "วันอาทิตย์");
foreach( $dayList as $key=>$value )
{
echo "วันที่ $key คือ $value <br>";
}
?>
คำสั่ง foreach( ตัวแปรอะเรย์ as ค่าอ้างอิง=>ค่าที่เก็บไว้ ) เป็นคำสั่งที่ใช้งานกับตัวแปร array เท่านั้น ทุก ๆ ครั้งที่วนรอบก็จะแสดงค่าถัดไปที่อยู่ในตัวแปรโดย- ค่าอ้างอิง: คือตัวที่ใช้สำหรับอ้างอิงถึงค่าที่เก็บไว้
- ค่าที่เก็บไว้: คือค่าที่เก็บไว้ในตัวแปร array ซึ่งจะเข้าถึงได้โดยการระบุ ค่าอ้างอิง
คำสั่ง break
<?php
/********** Syntax **********/
while( เงื่อนไข )
{
//การทำงาน
break;
}
/********** ตัวอย่าง **********/
$count = 1;
while( $count <= 50 )
{
echo "นับหมายเลข: $count <br>";
$count++; // ทำการเพิ่มค่าให้กับตัวแปร $count ไปอีก 1 ค่า
if( $count == 20 )
{
break;
}
}
?>
คำสั่ง break เป็นคำสั่งที่ใช้สำหรับออกจากการทำงานและลงไปทำงานคำสั่งถัดไป โดยเพื่อน ๆ ได้เห็นคำสั่งนี้แล้วใน บทความตอนที่แล้ว ซึ่งถ้าเอามาใช้งานภายในคำสั่งทำซ้ำก็จะเป็นการออกจากการทำซ้ำทันที สามารถใช้คำสั่งนี้เพื่อป้องกันกรณีที่โปรแกรมทำงานซ้ำไปเรื่อย ๆ ไม่มีที่สิ้นสุดได้
ในบทความตอนนี้เพื่อน ๆ จะได้เรียนรู้เกี่ยวกับคำสั่งทำซ้ำ ซึ่งจะช่วยลดการเขียนการทำงานซ้ำ ๆ ออก แต่การใช้คำสั่งทำซ้ำก็มีข้อควรระวังนั่นคือเพื่อน ๆ จะต้องตรวจสอบเงื่อนไขที่กำหนดในคำสั่งทำซ้ำให้ดี ไม่งั้นโปรแกรมอาจจะทำงานซ้ำแบบไม่มีที่สิ้นสุดได้




0 comments:
แสดงความคิดเห็น