StepCoding

คำสั่ง while

อ่าน [4586] หมวดหมู่: Flow-Control Statement

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

<?php
$total = 0;
$i = 1;
// ถ้าเงื่อนไขเป็นจริงก็จะเข้าไปทำงานในบล็อกนี้
while ($i <= 10) {
	$total += $i;
	// ก่อนที่จะวนลูปอีกรอบ เราต้องทำการเปลี่ยนแปลงค่าที่จะนำไปตรวจสอบเงื่อนไขด้วย มิฉะนั้นมันจะเกิด overflow
	$i++;
}
?>

ตัวอย่าง expression อีกรูปแบบหนึ่งในการใช้งานคำสั่งwhile

<?php
$total = 0;
$i = 1;
while ($i <= 10):
	$total += $i;
	$i++;
endwhile;
?>

เราสามารถสั่งให้มันหยุดทำการวนลูปได้ โดยการใช้ keyword break ดังนี้

<?php
$i = 0;
while ($i <= 10) {
	if ($i == 5) {
		break;
	}

	$total += $i;
	$i++;
}
?>

ในกรณีที่เราทำการสร้างลูป (loop) ที่ซ้อนกัน เราก็สามารถสั่งให้มันหยุดการทำงาน ในลูปแม่ก็ได้ โดยใส่ตัวเลขลำดับของลูปลงไป เช่น

<?php
$i = 0;
while ($i < 10) {
	while ($j < 10) {
		if ($j == 5) {
			break 2;	// สั่งให้ออกนอกลูปในลูปที่สองนับจากลูปปัจจุบัน (นั่นก็คือลูปแรกนั่นเอง)
		}
		$j++;
	}
	$i++;
}
echo $i;
echo $j;

// 0
// 5
?>

นอกจากนี้เราก็สามารถสั่งให้โปรแกรมทำการข้ามลูปนั้น ๆ ไปทำในรอบต่อไปได้ โดยใช้ keyword continue ได้ดังนี้

<?php
while ($i < 10) {
	$i++;
	while ($j < 10) {
		if ($j == 5) {
			continue 2;	// สั่งให้ไปทำรอบต่อไปในลูปที่ 2 นับจากลูปนี้เลย
		}
		$j++;
	}
}
?>

ผู้สนับสนุน