Loops

จีราวัฒน์ ศิรยศลักษณ์ 650710534

LOOPS

  • การ LOOP คือการวนซ้ำของระบบหรือสั่งให้ทำงานวนตามจำนวนครั้งที่ต้องการ โดยที่เงื่อนไขส่วนใหญ่ในคำสั่งควรเป็นจริงเพื่อสั่งให้ทำงานวนซ้ำภายใน loop

ลูปส่วนใหญ่แบ่งออกเป็น 2 ประเภท

Entry Controlled Loops (ลูปที่ตรวจสอบเงื่อนไขก่อนเข้า)

  • เป็นลูปประเภทที่จะตรวจสอบเงื่อนไขก่อนที่จะทำคำสั่งภายในลูป เช่น หากเงื่อนไขไม่ตรงตามที่กำหนดตั้งแต่ต้น ลูปข้างในก็จะไม่ทำงานเลย เช่น For loop และ While loop

ตัวอย่างลูป for

// for loop 
for (int i = 1; i < 5; i++) {
    Console.WriteLine("Apple " + i);
}

/* output
Apple 1
Apple 2
Apple 3
Apple 4
*/
FLOW CHART ของลูป for

ตัวอย่างลูป while

🌊 FLOW CHART ของลูป While

Exit Controlled Loops (ลูปที่ตรวจสอบเงื่อนไขหลังออก)

  • เป็นลูปประเภทที่จะทำคำสั่งภายในลูปก่อนแล้วจึงค่อยตรวจสอบเงื่อนไขของลูปหลังจากทำงานแต่ละรอบของลูป ดังนั้น จะทำงานภายในลูปก่อน 1 รอบเสมอ ไม่ว่าเงื่อนไขจะเป็นจริงหรือไม่ ตัวอย่างเช่น do-while

ตัวอย่างลูป do-while

FLOW CHART ของลูป do-while

Infinite loop

  • ลูปนี้เป็นลูปที่ไม่รู้จบ จะทำคำสั่งซ้ำไปเรื่อยๆ ไม่ว่าเงื่อนไขจะเป็นเท็จหรือจริง จบกว่าจะมีแรงจากภายนอกเพื่อยุติกันทำงาน

  • การใช้ลูปอนันต์จะมีประโยชน์ก็ต่อเมื่อ เราต้องการให้วนซ้ำการทำงานตราบเท่าที่โปรแกรมของเราทำงาน เช่นการเคลื่อนไวของอนิเมชั่น คุณอาจจะต้องการให้อนิเมชั่นวิ่งวนซ้ำเพื่อตรวจสอบ กรณีนี้การใช้ลูปอนันต์จึงจำเป็น

ตัวอย่างลูปอนันต์

Nested loops

  • หมายถึงลูปที่มีลูปข้างในอีกที เราจึงเรียกว่า nested loops

ตัวอย่างลูปซ้อน

การซ่อนไม่จำเป็นต้องใช้ตัววนเดียวกันก็ได้ เราสามารถใส่ for loop ไว้ข้างใน while loop หรือ do-while loop ไว้ข้างใน for loop ก็ได้ ตามตัวอย่างข้างล่าง


Compare with other language C / JAVA / PYTHON

For loops

  • ใน C มีการเปลี่ยนตรงส่วนของการแสดงผลโดยใช้ printf() เพื่อแสดงผล

  • ใน Java รูปแบบคล้ายกับ C แต่ใช้ System.out.println() สำหรับแสดงผล

  • ส่วนใน Python จะใช้ฟังก์ชัน range() สำหรับการสร้างลำดับตัวเลข และใช้ print() สำหรับการแสดงผล และไม่มีเครื่องหมายปีกกา ( {} ) ใช้การเว้นเยื้อง (indentation) แทน

While loops

  • ทั้ง 3 ภาษา C# C java มีความคล้ายกัน

  • ส่วน Python ใช้การเยื้องบรรทัดและใช้ตัวดำเนินการ+= แทนi++เนื่องจาก Python ไม่มีรูปแบบ ++ หรือ--

do-while loops

  • Python ไม่มี do-while loop โดยตรง แต่สามารถจำลองได้ด้วย while และใช้คำสั่ง break..


Summary of Comparing

  • ภาษา C : เป็นโครงสร้างพื้นฐานมากที่สุด ใช้ for, while, และ do-while โดยต้องจัดการตัวแปรและลำดับการเพิ่มค่าเอง

  • ภาษา Java : คล้ายกับ C แต่มีความสามารถเพิ่มขึ้น เช่น for-each loop (เนื้อหาถัดไป)

  • ภาษา Python : ใช้งานง่ายสุด มีการจัดการตัวแปรภายในโครงสร้าง loop และมี for ที่สามารถใช้งานกับลิสต์หรือคอลเลกชันอื่น ๆ ได้ โดยไม่ต้องระบุลำดับขั้นตอนไปเอง


video presentation

Slide presentation


Source แหล่งที่มา

C#

C

Java

Python

Last updated