คำสั่ง break ใน PHP
สมมติว่าเรามีลูปดังต่อไปนี้ที่แสดง องค์ประกอบของอาร์เรย์บนหน้าจอ:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
echo $elem;
}
?>
สมมติว่าภารกิจของเราคือการกำหนดว่า
มีตัวเลข 3 ในอาร์เรย์หรือไม่ ถ้ามี
- ให้แสดงผลบนหน้าจอเป็น '+++' (และ
ถ้าไม่มี - ก็ไม่ต้องทำอะไร)
มาแก้ไขภารกิจของเรา:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
if ($elem == 3) {
echo '+++';
}
}
?>
ภารกิจได้รับการแก้ไขแล้ว อย่างไรก็ตาม มีปัญหา: หลังจาก
ที่พบตัวเลข 3 แล้ว อาร์เรย์
ก็ยังคงถูกวนลูปต่อไปอย่างไร้ความหมาย
ซึ่งเป็นการสิ้นเปลืองทรัพยากร CPU อันมีค่าและ
ทำให้การทำงานของสคริปต์ของเราช้าลง
วิธีที่เหมาะสมกว่าคือควรจะหยุดการทำงานของลูปของเราทันทีหลังจากพบ
ตัวเลขนั้น สามารถทำได้ด้วยคำสั่งพิเศษ
break ซึ่งอนุญาตให้สิ้นสุดการทำงานของลูปก่อนกำหนด
เอาล่ะ มาให้ลูปสิ้นสุดทันทีที่เรา
พบตัวเลข 3:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
if ($elem == 3) {
echo '+++';
break; // ออกจากลูป
}
}
?>
คำสั่ง break สามารถใช้สิ้นสุดลูปได้ทุกประเภท:
foreach, for, while
กำหนดให้มีอาร์เรย์ของตัวเลข เริ่มต้นลูปที่
จะแสดงองค์ประกอบของอาร์เรย์นี้ทีละองค์ประกอบ
ในคอนโซล จนกว่าจะพบองค์ประกอบที่มีค่าเป็น 0 หลังจากนั้น
ลูปควรจะสิ้นสุดการทำงาน
กำหนดให้มีอาร์เรย์ของตัวเลข จงหาผลรวมขององค์ประกอบ ตั้งแต่ต้นอาร์เรย์จนถึงตัวเลขลบแรก
กำหนดให้มีอาร์เรย์ของตัวเลข จงหาตำแหน่งของตัวเลข
3 ตัวแรกในอาร์เรย์นี้ (ถือว่า
ตัวเลขนี้มีอยู่ในอาร์เรย์แน่นอน)
จงหาว่าจำนวนเต็มกี่ตัว เริ่มต้น
จากตัวเลข 1 ที่ต้องนำมาบวกกัน เพื่อให้ผลรวม
มากกว่า 100