บ่อยครั้งในการเขียนโปรแกรมที่เราต้องการให้โค้ดส่วนหนึ่งมีการทำงานซ้ำ ๆ แทนที่เราจะทำการ 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:
แสดงความคิดเห็น