circle-minusBreak & Continue

สิริยากร พรามบุตร 630710339

ความหมายและหน้าที่ของ Break & Continue

คำสั่ง break และ continue ใน PHP เรียกกันว่า "คำสั่งควบคุมลูป" (loop control statements) ซึ่งใช้กับลูปประเภทต่างๆ ใน PHP เช่น for, while, หรือ do-while บทความนี้สอนการใช้คำสั่ง break และ continue เพื่อออกจากลูป โดย break เป็นการออกจากลูปเลย ส่วน continue เป็นการข้าม (skip) ของรอบนั้นๆ ดังนั้นการใช้คำสั่ง break และ continue ในภาษา PHP มีลักษณะคล้ายหลายภาษาอยู่เหมือนกัน เช่น ภาษา c, java และ python เป็นต้น

Break

คำสั่ง break ในภาษา PHP จะใช้เพื่อออกจากลูปหรือตัวเลือก (for, foreach, while, do-while or switch) ก่อนที่มันจะทำงานเสร็จสิ้นในทุกการวนรอบ เมื่อเจอคำสั่งนี้โปรแกรมจะหลุดออกจาก loop เหล่านี้ทันที ปกติแล้วคำสั่ง break จะถูกใช้งานในเงื่อนไขที่กำหนดไว้ (เช่น ภายในเงื่อนไข if) หากไม่เช่นนั้น ลูปจะหยุดการทำงานตั้งแต่ครั้งแรกของการวนซ้ำ ทำให้ไม่สามารถทำงานได้ครบตามจำนวนที่ตั้งใจไว้

Example PHP ที่ใช้กับ loop statements ต่างๆ

<?php
   $i = 1;

   while ($i<=10){
      echo "Iteration No. $i \n";
      if ($i>=3){
         break;
      }
      $i++;
   }
?>

Output

Flowchart ที่อธิบายถึงวิธีการทำงานของคำสั่ง break

Example break flowchart

จากภาพ flowchart แสดงถึงการทำงานของลูปที่ใช้คำสั่ง break เพื่อออกจากลูปก่อนที่เงื่อนไขของลูปจะกลายเป็นเท็จ False มีการทำงานดังนี้

  • เริ่มต้นลูปโดยตรวจสอบเงื่อนไข Condition ว่ามีค่าเป็นจริง True หรือเท็จ False หากเงื่อนไขเป็น False การวนลูปจะสิ้นสุดและออกจากลูปทันที

  • ถ้าเงื่อนไขเป็นจริง True โปรแกรมจะเข้าสู่การทำงานภายในลูป โดยรันโค้ดที่อยู่ในภายใน Condition code

  • Condition Code ทำงานตามที่กำหนดไว้ภายในลูป ซึ่งอาจเป็นการคำนวณหรือการตรวจสอบเงื่อนไขเพิ่มเติม

  • เมื่อคำสั่ง break ถูกเรียกใช้ โปรแกรมจะออกจากลูปทันที หยุดการทำงานที่เหลือและไม่วนลูปต่อไป

  • หากไม่มีคำสั่ง break และเงื่อนไขยังคงเป็น True ลูปจะวนกลับไปตรวจสอบเงื่อนไขภายใน Condition อีกครั้ง และทำงานวนซ้ำต่อไป

เปรียบเทียบการใช้ Break ในภาษา PHP, Java, C และ Python

Example เขียนโปรแกรมที่พิมพ์หมายเลขตั้งแต่ 0 ถึง 9 แต่ให้หยุดเมื่อถึงหมายเลข 4

Output

  • PHP ใช้เพื่อออกจาก for loop เมื่อเงื่อนไขเป็นจริง โปรแกรมจะหยุดทำงานทันทีเมื่อ $x เท่ากับ 4 และจะไม่พิมพ์หมายเลขที่เหลือ

  • C ใช้ในลักษณะเดียวกันกับ PHP โดยออกจาก for loop เมื่อตรงตามเงื่อนไข โปรแกรมจะหยุดทำงานทันทีที่ x เท่ากับ 4 เช่นเดียวกับ PHP

  • JAVA ใช้เหมือนกันกับ PHP และ C โดยจะหยุดการทำงานของ for loop เมื่อเงื่อนไขตรงกัน ผลลัพธ์เหมือนกัน โปรแกรมจะหยุดทำงานเมื่อ x เท่ากับ 4

  • Python ใช้เพื่อออกจาก for loop เมื่อตรงตามเงื่อนไข ผลลัพธ์ก็เหมือนกัน โปรแกรมจะหยุดทำงานเมื่อ x เท่ากับ 4

จากตัวอย่างเราจะรู้สังเกตได้ว่าทั้ง 4 ภาษามีแสดง output ที่เหมือนกัน ซึ่งคำสั่ง break ภายใน code ตัวอย่าง ทำหน้าที่ออกจากลูปทันทีเมื่อ x เท่ากับ 4 โดยคำสั่ง break ถูกใช้เพื่อควบคุมการทำงานของโปรแกรม ช่วยให้โค้ดมีความยืดหยุ่นและเข้าใจง่ายมากขึ้น แม้ว่าแนวทางการใช้ break จะเหมือนกันในแต่ละภาษา แต่ไวยากรณ์ของการพิมพ์ผลลัพธ์จะแตกต่างกัน เช่น PHP ใช้ echo, C ใช้ printf, Java ใช้ System.out.println, และ Python ใช้ print()

Continue

คำสั่ง continue ภาษา PHP คือ คำสั่งสำหรับข้ามการทำงาน หรือละเว้นการทำงานในช่วงดังกล่าว โดยโปรแกรมที่อยู่ด้านล่างคำสั่ง continue จะไม่ถูกทำงานทั้งหมด โดยบทความนี้จะสอนการใช้คำสั่ง continue เพื่อข้ามการวนลูปตามเงื่อนไขที่เราต้องการ ต่างจาก break ที่จะหยุดทันทีเมื่อเจอคำสั่ง

Example PHP ลูปหรือตัวเลือกที่สามารถใช้คำสั่ง continue ได้

Output

Flowchart ที่อธิบายถึงวิธีการทำงานของคำสั่ง break

Example continue flowchart

จากภาพ flowchart แสดงการทำงานของลูปที่มีคำสั่ง continue ซึ่งทำให้การทำงานข้ามไปยังรอบถัดไปเมื่อเงื่อนไขที่กำหนดตรงกับคำสั่ง continue โดยไม่รันโค้ดที่เหลือในรอบปัจจุบัน

เปรียบเทียบการใช้ Continue ในภาษา PHP, Java, C และ Python

Example เขียนโปรแกรมที่พิมพ์หมายเลขตั้งแต่ 0 ถึง 9 แต่ให้ข้ามการพิมพ์หมายเลข 4

Output

  • PHP เมื่อ $x เท่ากับ 4 โปรแกรมจะข้ามการทำงานในรอบนั้นและไปยังการทำงานในรอบถัดไป ใช้ echo เพื่อพิมพ์ผลลัพธ์ พร้อม <br> เพื่อขึ้นบรรทัดใหม่

  • C การทำงานเหมือนกันกับ PHP โดยจะข้ามการพิมพ์เมื่อ x เท่ากับ 4 ใช้ printf ซึ่งต้องระบุรูปแบบข้อมูล (ในที่นี้คือ %d)

  • JAVA มีการทำงานคล้ายคลึงกับ PHP และ C โดยจะข้ามการทำงานเมื่อ x เท่ากับ 4 ใช้ System.out.println ซึ่งไม่ต้องระบุรูปแบบเหมือน C

  • Python ใช้เพื่อข้ามการทำงานในลูปเมื่อ x เท่ากับ 4 โดยที่ลูปจะกลับไปเริ่มต้นที่การตรวจสอบเงื่อนไขใหม่ ใช้ print() ซึ่งรองรับการจัดรูปแบบด้วย f-string

จากตัวอย่างเราจะรู้สังเกตได้ว่าทั้ง 4 ภาษามีแสดง output ที่เหมือนกัน ซึ่งคำสั่ง continue แต่รูปแบบแตกต่างของคำตอบต่างจาก คำสั่ง break คือ ผลลัพธ์ในทุกภาษาแสดงตัวเลขตั้งแต่ 0 ถึง 9 แต่จะไม่มีการแสดงผลเมื่อเลขเป็น 4 คำสั่ง continue ทำให้โปรแกรมข้ามการแสดงผลในกรณีที่เงื่อนไขตรง

ข้อดี-ข้อเสียของ Break & Continue

ข้อดี-ข้อเสียของ break
ข้อดี - ข้อเสียของ Continue

ข้อดี

  • break ช่วยหยุดลูปเมื่อถึงเงื่อนไขที่ต้องการ ทำให้ไม่ต้องเสียเวลาทำงานในลูปต่อไปหากไม่จำเป็น

  • ในกรณีที่รู้ว่าเงื่อนไขที่ต้องการพบแล้ว การใช้ break ช่วยลดรอบการวนซ้ำที่ไม่จำเป็น ทำให้โปรแกรมทำงานได้เร็วขึ้น

  • ช่วยให้โปรแกรมออกจากลูปตามเงื่อนไขที่กำหนดไว้ ทำให้สามารถจัดการกรณีพิเศษได้ดี เช่น การตรวจสอบเงื่อนไขในลูปที่ซับซ้อน

ข้อดี

  • continue ช่วยให้ข้ามขั้นตอนบางอย่างในลูปได้ เมื่อรู้ว่าการทำงานในรอบนั้นไม่จำเป็นต้องดำเนินต่อ

  • แทนที่จะใช้ if หลายๆ ชั้นเพื่อกรองเงื่อนไขที่ไม่ต้องการ continue ทำให้ข้ามการทำงานในเงื่อนไขที่ไม่ตรงเกณฑ์ได้ทันที

ข้อเสีย

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

  • หากเงื่อนไขที่ใช้กับ break ไม่ครอบคลุมหรือเขียนไม่ชัดเจน อาจทำให้โปรแกรมทำงานผิดพลาดหรือหยุดทำงานในเวลาที่ไม่ควรหยุด

  • การใช้ break มากเกินไปอาจทำให้โปรแกรมไม่ยืดหยุ่นเมื่อมีการเปลี่ยนแปลงเงื่อนไขในการทำงานในภายหลัง

ข้อเสีย

  • เช่นเดียวกับ break หากใช้ continue บ่อยเกินไป อาจทำให้โค้ดซับซ้อนและยากที่จะติดตามการไหลของโปรแกรม

  • หากใช้ continue ในจุดที่ไม่เหมาะสม อาจทำให้ข้ามบางขั้นตอนที่ควรทำ ทำให้โปรแกรมไม่ทำงานตามที่คาดหวัง

Slide

Reference

Last updated