วันพฤหัสบดีที่ 24 พฤศจิกายน พ.ศ. 2559

[PHP] ตอนที่ 7: การทำซ้ำ


          บ่อยครั้งในการเขียนโปรแกรมที่เราต้องการให้โค้ดส่วนหนึ่งมีการทำงานซ้ำ ๆ แทนที่เราจะทำการ 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( กำหนดค่า; เงื่อนไข; เพิ่มหรือลดค่า; ) เหมาะสำหรับการใช้งานในกรณีที่เราคาดเดาได้ว่าจะต้องทำซ้ำเป็นจำนวนเท่าไหร่ โดยในวงเล็บจะมีการกำหนดต่าง ๆ ดังนี้
  • กำหนดค่า: เป็นการกำหนดค่าเริ่มต้นของในการทำซ้ำ
  • เงื่อนไข: เป็นการกำหนดเงื่อนไข ถ้าเงื่อนไขเป็นจริงก็จะทำการวนซ้ำต่อ แต่ถ้าเงื่อนไขเป็นเท็จก็จะหยุดการทำงานทันที
  • เพิ่มหรือลดค่า: เป็นการเพิ่มหรือลดค่าเริ่มต้น
          เนื่องจากมีการกำหนดค่าต่าง ๆ ไว้ในวงเล็บที่คำสั่ง 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 เป็นคำสั่งที่ใช้สำหรับออกจากการทำงานและลงไปทำงานคำสั่งถัดไป โดยเพื่อน ๆ ได้เห็นคำสั่งนี้แล้วใน บทความตอนที่แล้ว ซึ่งถ้าเอามาใช้งานภายในคำสั่งทำซ้ำก็จะเป็นการออกจากการทำซ้ำทันที สามารถใช้คำสั่งนี้เพื่อป้องกันกรณีที่โปรแกรมทำงานซ้ำไปเรื่อย ๆ ไม่มีที่สิ้นสุดได้

          ในบทความตอนนี้เพื่อน ๆ จะได้เรียนรู้เกี่ยวกับคำสั่งทำซ้ำ ซึ่งจะช่วยลดการเขียนการทำงานซ้ำ ๆ ออก แต่การใช้คำสั่งทำซ้ำก็มีข้อควรระวังนั่นคือเพื่อน ๆ จะต้องตรวจสอบเงื่อนไขที่กำหนดในคำสั่งทำซ้ำให้ดี ไม่งั้นโปรแกรมอาจจะทำงานซ้ำแบบไม่มีที่สิ้นสุดได้


----- สารบัญ -----


Share:

0 comments:

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