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

  • break
  • continue

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

คำสั่ง break

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

 <?php
	for ($i = 0; $i < 10; $i++ ) {
		if ($i == 5) {
			break;
		}
		echo $i;
	}
?> 

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

คำสั่ง continue

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

 <?php
	for ($i = 0; $i < 10; $i++ ) {
		if ($i == 5) {
			continue;
		}
		echo $i;
	}
?> 

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

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

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

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

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

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

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

Comments

จำนวนความเห็น