ݺߣ

ݺߣShare a Scribd company logo
บทที่ 5
การเขียนโปรแกรมควบคุมทิศทางแบบวนซ้า (Loop) ในภาษาซีหมายถึง
การทาคาสั่งซ้าๆ กันหลายครั้งตามเงื่อนไขที่กาหนดไว้ ในการตรวจสอบเงื่อนไข จะมี
รูปแบบของการตรวจสอบเงื่อนไขอยู่ 2 แบบ คือ
ตรวจสอบก่อนการวนซ้า รูปแบบนี้จะตรวจสอบเงื่อนไขว่าเป็นจริงหรือเป็นเท็จ
ถ้าเป็นจริงก็จะไปทางานตามคาสั่งที่กาหนดไว้ และเมื่อทางานเสร็จก็จะกลับมาทาการ
ตรวจสอบเงื่อนไขอีกครั้ง ทาเช่นนี้ไปเรื่อยๆจนกระทั่งเงื่อนไขได้ค่าเป็นเท็จ ก็จบการวน
ซ้า
ตรวจสอบหลังการวนซ้า รูปแบบนี้จะทาคาสั่งก่อน ทาคาสั่งเสร็จแล้วจึงค่อยมา
ตรวจสอบเงื่อนไขว่าเป็นจริงหรือเป็นเท็จ ถ้าเป็นจริงก็จะกลับไปทาคาสั่งเดิมอีกครั้ง ทา
เช่นนี้ไปเรื่อยๆ จนกว่าเงื่อนไขที่ได้เป็นเท็จ
องค์ประกอบพื้นฐานของการวนซ้ามี ดังนี้
การกาหนดค่าเริ่มต้นของตัวแปรต่าง ๆ ก่อนวนซ้า
เงื่อนไขที่จะให้ทาวนซ้า (จะอยู่ก่อนหรืออยู่ด้านหลังคาสั่งที่อยากทาก็ได้)
งานที่ต้องการทาวนซ้า
การปรับค่าตัวแปรเงื่อนไขการวนซ้า (คือการเปลี่ยนค่าตัวแปรที่เกี่ยวพันกับเงื่อนไขที่จะ
ให้ทาหรือจบการวนซ้า)
การวนซ้าในภาษาซีมีอยู่ 3 รูปแบบ คือ
คาสั่ง while ( ) { .... }
คาสั่ง do { .... } while ( );
คาสั่ง for ( ) { .... }
คาสั่ง while()
while เป็นแบบการตรวจสอบก่อนการวนซ้า มีการตรวจสอบเงื่อนไขก่อน
การวนซ้า ถ้าเป็นจริงจึงจะเข้าไปทางานตามคาสั่งที่กาหนดไว้ แต่ถ้าเป็นเท็จก็จะจบการ
วนซ้า มีรูปแบบดังต่อไปนี้
รูปแบบการทางาน
while ( เงื่อนไข ) {
งานที่ต้องการทาซ้า;
การปรับค่าตัวแปรเงื่อนไขการทางาน ;
}
จากรูปแบบคาสั่ง while สามารถเขียนเป็นผังงานได้ตามภาพต่อไปนี้
รูปที่ 1 ผังงานข้อความสั่ง while
หมายเหตุ เช่นเดียวกับคาสั่ง if พบว่า กิจกรรมของ while มีได้เพียงคาสั่ง
เดียว นั่นหมายความว่าถ้าต้องการเขียนมากกว่า 1 กิจกรรมต้องใช้เครื่องหมาย { }
ตัวอย่างที่ 1 เขียนโปรแกรมแสดงตัวเลขตั้งแต่ 1 ถึง 10
เมื่อสั่งรันโปรแกรมจะปรากฏหน้าจอดังนี้
ตัวอย่างที่ 2
เขียนโปรแกรมรับคะแนนที่ป้อนเข้ามาจากคีย์บอร์ด ถ้าคะแนนมากกว่าหรือ
เท่ากับ 50 ซึ่งทาให้เงื่อนไขของข้อความสั่ง if เป็นจริง จะแสดงข้อความ Pass ปรากฏ
ออกทางจอภาพ
โปรแกรมสามารถวนซ้าทางานไปเรื่อยๆ ได้จนกว่าผู้ใช้ป้อนคะแนนเท่ากับ 0
จึงจะจบการวนซ้า
เมื่อสั่งรันโปรแกรมจะปรากฏหน้าจอดังนี้
คําสั่งหยุดการวนซํ้า (break)
บางครั้งเราต้องการออกจากลูปจากช่วงตรงกลาง แทนที่จะการออกจากลูปจาก
การตรวจเงื่อนไขของคาสั่ง while
การใช้คาสั่ง break;
คาสั่ง break; โดยตัวของมันเองเป็นการออกจากลูปอย่างไม่มีเงื่อนไข
ถ้าเราใช้ตรง ๆ ก็จะหยุดลูปทุกครั้งไป ลูปจะไม่มีการวนซ้าเพราะโดนคาสั่ง
break ; สั่งหยุดทางานทุกครั้ง เช่น
ตัวอย่างที่ 3
ผลลัพธ์
หมายเหตุ จะเห็นได้ว่าคาสั่ง break; อยู่ในลูปโดยไม่อยู่ใต้เงื่อนไขของ
while ดังนั้นโปรแกรมนี้หลังจากรับค่าจากผู้ใช้มาเก็บไว้ ก็จะออกจากลูปทันทีไม่มีการ
วนทาซ้า

More Related Content

บทที่ 5