19 มี.ค. 2022 เวลา 07:42 • วิทยาศาสตร์ & เทคโนโลยี
002: Loop 3 แบบ
ในการเขียนโปรแกรม เราสามารถจำแนกการวนซ้ำ (loop) ออกเป็น 3 รูปแบบ ตามตำแหน่งของการตรวจสอบเงื่อนไข
(อ้างอิง: Code Complete 2nd edition)
  • 1.
    ตรวจสอบเงื่อนไขตอนต้นลูป
  • 2.
    ตรวจสอบเงื่อนไขตอนท้ายลูป
  • 3.
    ตรวจสอบเงื่อนไขตรงกลางลูป
1. Loop ที่ตรวจสอบเงื่อนไขตอนต้น
1. Loop ที่ตรวจสอบเงื่อนไขตอนต้น จะมีโอกาสที่คำสั่งภายในลูปอาจไม่ถูกเรียกใช้งานเลย
ตัวอย่างในภาษา C ได้แก่ while loop และ for loop
2. Loop ที่ตรวจสอบเงื่อนไขตอนท้าย
2. Loop ที่ตรวจสอบเงื่อนไขตอนท้าย คำสั่งภายในลูปจะถูกเรียกใช้งานอย่างน้อย 1 ครั้งขึ้นไป
ในภาษา C ได้แก่ do...while loop
ตัวอย่างเช่น
do {
playGame();
} while(wantToPlayAgain());
ตามตัวอย่างข้างต้น อย่างน้อยผู้เล่นเกมจะได้เล่นเกมหนึ่งครั้ง เมื่อเกมโอเวอร์ จะตรวจสอบเงื่อนไขว่าต้องการเล่นซ้ำหรือไม่ หากต้องการเล่นซ้ำ ก็จะวนลูปขึ้นไปใหม่
3. Loop ที่ตรวจสอบเงื่อนไขตรงกลาง
3. Loop ที่ตรวจสอบเงื่อนไขตรงกลาง
ลูปประเภทนี้ไม่มีคำสั่งเทียบเคียงตรง ๆ ในภาษา C หรือ Java ทำให้ในการสอนทั่วไปจะไม่ค่อยมีการเน้นเป็นพิเศษ แต่อันที่จริงแล้วลูปประเภทนี้มีโอกาสใช้งานอยู่มากพอสมควร และเป็นรูปแบบที่ General ที่สุด ในทั้งสามรูปแบบ
เราสามารถเขียนได้โดยใช้ loop ปกติ ผสมกับการเช็คเงื่อนไขด้วย if และออกจากลูปด้วย break
ตัวอย่างเช่น
(ขอยกตัวอย่างเป็นภาษา Java เพราะใช้คำว่า true ได้ จะทำให้เข้าใจง่ายขึ้น)
while (true) {
playGame();
if(!wantToPlayAgain())
break;
displayRestart();
}
ตามตัวอย่างนี้ จะเห็นว่า
  • 1.
    ผู้เล่นเกมจะได้เล่นเกมอย่างน้อย 1 ครั้ง
  • 2.
    เมื่อ game over หากผู้เล่นไม่ต้องการเล่นต่อจะออกจากลูป
  • 3.
    หากผู้เล่นต้องการเล่นต่อ จะแสดงหน้าจอ restart game ก่อนที่จะวนกลับไปเล่นเกมใหม่
จุดสังเกตคือ หน้าจอ restart จะไม่แสดงผล หากเล่นเกมเพียงครั้งเดียว
ลูปประเภทที่สามนี้ เป็นแบบที่ "ทั่วไป" ที่สุดในทั้งสามรูปแบบ กล่าวคือเราสามารถแปลงลูปในรูปแบบที่ 1 และ 2 มาเป็นลูปประเภทที่ 3 นี้ได้เสมอ
โดยหากพิจารณาภาพที่ 3 เมื่อตัดกล่อง A ออก จะได้ลูปแบบตรวจสอบเงื่อนไขตอนต้น
หรือหากตัดกล่อง B ออก จะได้ลูปแบบตรวจสอบเงื่อนไขตอนท้าย นั่นเอง
โฆษณา