loop คือ การกระทำซ้ำๆกัน จนกว่าจะมีเงื่อนไขให้การกระทำนั้นหยุด ไม่เช่นนั้นการกระทำจะเกิดขึ้นอย่างไม่มีจุดจบ กลายเป็น infinite loop

ทำไมต้องใช้ loop?

เพื่อให้ลดการเขียน code เดียวกันซ้ำแล้วซ้ำอีก และทำให้เขียนโปรแกรมจัดการกับข้อมูลจำนวนมากได้เร็วมากขึ้น

ตัวอย่างการเขียน code แบบซ้ำ

For loops

for loop
  • แบ่งออกเป็น 3 ส่วน แต่ละส่วนคั่นด้วย ;
  • ส่วนที่ 1 เรียกว่า initialisation มีการประกาศและกำหนดตัวแปรที่เรียกว่า iterator ทำให้ loop เริ่มทำตามคำสั่งใน code block ทันที
  • ส่วนที่ 2 เรียกว่า stopping condition เป็นส่วนเงื่อนไข โดยโปรแกรมจะทำงานต่อเมื่อ iterator ตรงกับเงื่อนไขที่กำหนดเท่านั้น
  • ส่วนที่ 3 เรียกว่า iteration statement เป็นส่วนการกระทำย้ำ มีการเปลี่ยนแปลงตัวแปร iterator ทุกครั้งที่วน loop

For Loop ใน Array

for loop มีประโยชน์มากเมื่อใช้ใน array สามารถวน loop เพื่อเข้าถึงสมาชิกทั้งหมดใน array ได้

  • ส่วนที่ 1 ของ loop ตั้งตัวแปร iterator เท่ากับ 0 สำหรับเข้าถึงสมาชิกตัวแรกของ array (index 0)
  • ส่วนที่ 2 ของ loop ตั้งเงื่อนไขให้ loop ไม่วนเกินจำนวนสมาชิก ใช้ .length property (length property แสดงจำนวนสมาชิกทั้งหมดใน array)
  • ส่วนที่3 ของ loop ให้ค่าตัวแปร iterator เพิ่มทุกครั้งที่วน loop ทีละหนึ่ง

For Loop Reverse

วน loop จากสมาชิกตัวสุดท้ายใน array ไปยังสมาชิกตัวแรก

  • ส่วนที่ 1 ของ loop ตั้งตัวแปร iterator เท่ากับจำนวนสมาชิก -1 (สมาชิกตัวแรกเริ่มนับเป็น index 0) สำหรับเข้าถึงสมาชิกตัวสุดท้ายของ array
  • ส่วนที่ 2 ของ loop ตั้งเงื่อนไขให้ loop หยุดเมื่อตัวแปร iterator มีค่าเท่ากับ index 0 (ตำแหน่งสมาชิกตัวแรก)
  • ส่วนที่3 ของ loop ให้ค่าตัวแปร iterator ลดลงทุกครั้งที่วน loop ทีละหนึ่ง

Nested Loops

ประโยชน์อย่างหนึ่งของการใส่ loop ใน loop หรือที่เรียกว่าการ nested loop เพื่อเปรียบเทียบสมาชิกใน array ตั้งแต่ 2 array ขึ้นไป

loop แรกที่อยู่ด้านนอก เรียกว่า outer loop

loop ที่อยู่ด้านใน เรียกว่า inner loop

outer loop รันหาสมาชิกของ array แรกทีละตัว ในขณะที่ inner loop จะรัน code ใน inner loop ทั้งหมดเพื่อเปรียบเทียบสมาชิกของ array อันที่สอง

While Loops

สามารถแปลง for loop เป็น while loop ได้

  • ประกาศตัวแปร และค่าของตัวแปร
  • ใส่คีย์เวิร์ด while และตามด้วย stopping condition หรือ เงื่อนไขที่ทำให้ loop หยุดทำงานเมื่อเงื่อนไขใน stopping condition เป็น false
  • ใส่ code block คำสั่งให้ loop ทำงาน เมื่อเงื่อนไขใน stopping condition เป็น true

While loop ใน Array

while loop สามารถรันหาสมาชิกและจัดการกับสมาชิกใน array ได้เหมือน for loop

โปรแกรมในรูปด้านบนใช้ ​function Math.floor และ Math.random เพื่อสุ่มตัวเลข

stopping condition ระบุให้ loop ทำงานถ้าไพ่ที่สุ่มได้ไม่ใช่ ‘spade’

โปรแกรมแสดงผลไพ่ที่สุ่มได้จนสุ่มได้ ‘spade’ จึงหยุดทำงาน

Do…while Loops

do…while loop มีการทำงานเหมือน while loop แต่ code ใน code block จะทำงานอย่างน้อยหนึ่งครั้งก่อนที่จะวน loop

ในขณะที่ code ใน code block ของ while loop จะทำงานหรือไม่ขึ้นอยู่กับ stopping condition ของ loop ว่าเป็น true หรือ false

Break keyword

break statement ช่วยให้โปรแกรมออกจากการทำงานใน loop ได้ตามเงื่อนไขที่กำหนด