Skip navigation.
Home

บทที่7.5 คำสั่งควบคุม คำสั่งวนรอบ

หลังจากเราเข้าใจการทำงานของคำสั่งวนรอบแล้ว ทีนี้ก็มาถึงวิธีการควบคุมการทำงานของคำสั่งวนรอบแล้ว ซึ่งก็มีเพียง 2 คำสั่งคือ

  • break
  • continue

สำหรับคำสั่งควบคุมนี้ ต้องใช้งานร่วมกับคำสั่งเงื่อนไขภายในลูปควบคุมการทำงาน (งง อ่ะ)

คำสั่ง break

จะทำให้ลูปที่กำลังทำงานนั้น หยุดลงทันที ใช้ร่วมกับ for, foreach, while, do while, switch โดยเฉพาะ switch นั้น ต้องใส่ break สำหรับแต่ละ case ด้วย ไม่เช่นนั้นจะทำงานไปเรื่อยๆ จนหมด switch ลองดูตัวอย่างกันเลยล่ะกันครับ

  1.  <?php
  2.         for ($i = 0; $i < 10; $i++ ) {
  3.                 if ($i == 5) {
  4.                         break;
  5.                 }
  6.                 echo $i;
  7.         }
  8. ?>

จากตัวอย่าง for ถูกให้ทำงานเป็นจำนวน 10 รอบ แต่ภายในลูปมีเงื่อนไขอยู่ ถ้าหากวนไปไ้ด้ถึง 5 รอบก็จะตรงกับเงื่อนไขที่ตั้งไว้ คำสั่ง break จะถูกเรียกใช้งาน ทำให้ for หยุดทำงาน ทำให้ผลลัพท์ที่ได้เป็น 01234

คำสั่ง continue

เหมือนกับ break ทุกๆ อย่างเลยครับ เพียงแต่จะหยุดทำงานในรอบนั้นๆ แล้วทำงานรอบต่อไปจนหมดลูปแทน จากโค๊ดข้างบน ถ้าเปลี่ยนจาก break เป็น continue โปรแกรมก็จะข้ามการทำงานเมื่อวนไปได้ถึงรอบที่ 5 ทำให้ผลลัพท์เป็น 012346789 แทน

  1.  <?php
  2.         for ($i = 0; $i < 10; $i++ ) {
  3.                 if ($i == 5) {
  4.                         continue;
  5.                 }
  6.                 echo $i;
  7.         }
  8. ?>

ต้องลองเล่นดูบ่อยๆ ครับ ถึงจะเห็นประโยชน์ของมัน

โจทย์ขำๆ ครับ ลองคิดกันเล่นๆ ดีกว่า

  1.  <?php
  2.         // พิมพ์ 1 - 100 ยกเว้นเลขที่หาร 2 หรือ 5 ลงตัว
  3.         for ($i = 1; $i < 100; $i++ ) {
  4.                 if (($i % 2 == 0) || ($i % 3 == 0)) {
  5.                         continue;
  6.                 }
  7.                 echo $i . "<br />";
  8.         }
  9. ?>

มาลองคิดกันดูครับ ว่าจะได้ผลลัพท์อะไร

  1.  <?php
  2.         // อันนี้ไม่ยากเท่าไหร่ครับ
  3.         $count = 0;
  4.         for ($i = 6; $i > $count; $i--, ++$count ) {
  5.                 echo $count . "<br />";
  6.         }
  7. ?>
  1.  <?php
  2.         // ยากขึ้นมาอีกนิดนึง
  3.         $x = 0;
  4.         $y = 0;
  5.         for ($z = 0; $z < 5; $z++ ) {
  6.                 if (( ++$x > 2) || (++$y > 2)) {
  7.                         $x++;
  8.                 }
  9.         }
  10.         echo "X = " . $x;
  11.         echo "<br />";
  12.         echo "Y = " . $y;
  13. ?>

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

แล้วพบกันใหม่ โอกาสหน้าครับ

Your rating: None