Python มี loop หลักๆ 2 แบบ คือ while loop และ for loop

while loop

while loop จะรันชุดคำสั่งตราบเท่าที่เงื่อนไขนั้นเป็นจริง เช่น

i = 0
while i < 10:
  print(i)
  i += 1

ตราบเท่าที่ i น้อยกว่า 10 ให้พิมพ์ค่าของ i บนหน้าจอ จากนั้นให้ i = i + 1

Output:
0
1
2
3
4
5
6
7
8
9

#หยุดที่ 9 เพราะเมื่อ 9 + 1 = 10 หมายความว่า i มีค่าเท่ากับ 10 ทำให้เงื่อนไขที่ i < 10 ไม่เป็นจริง

#จำเป็นต้องเพิ่มค่าของ i หลังจาก print statement ไม่เช่นนั้นโปรแกรมจะพิมพ์ค่า i (0) ไม่หยุด คอมฯอาจค้างได้ loop ที่ทำให้โปรแกรมพิมพ์ค่าไม่หยุดเพราะ loop เรียกว่า infinite loop

break statement

break statement ใช้หยุดการทำงานของ loop แม้ว่าเงื่อนไขยังคงเป็นจริงอยู่นั้นเอง

i = 0
while i < 10:
  print(i)
  if i == 5:
    break
  i += 1

Output:
0
1
2
3
4

วิธีอ่าน loop

i เท่ากับ 0 หาก i น้อยกว่า 10 พิมพ์ค่า i (โปรแกรมพิมพ์ค่า i คือ 0) จากนั้นดูว่า i เท่ากับ 5 หรือไม่ (หากเท่ากับ 5 ให้ออกจาก loop) i ที่พิมพ์ไปคือค่า 0 จึงไม่ออกจาก loop แต่ดำเนินการบรรทัดต่อไปคือ เพิ่มค่า i

i = 0 + 1 ทำให้ i มีค่าเป็น 1 ไม่ใช่ 0 แล้ว

จากนั้นเริ่มตั้งแต่บรรทัดแรกอีกครั้ง คือ i เท่ากับ 1 และวนไปจนกว่า i จะเท่ากับ 5 และออกจาก loop

continue statement

ใช้ในการหยุดการทำงานในขั้นตอนที่ตรงกับเงื่อนไขที่กำหนดไว้ และให้ข้ามไปขั้นตอนต่อไปเลย เช่น

i = 0
while i < 10:
  i += 1  
  if i == 5:
    continue
  print(i)

#สามารถสลับที่ขั้นตอนการเพิ่มค่า i ได้ แต่เมื่อสลับแล้วการทำงานก็จะเปลี่ยนไปด้วย เช่นตัวอย่างข้างบนนี้ เพิ่มค่า i ก่อนแล้วค่อยพิมพ์ ดังนั้นค่าแรกที่พิมพ์ จึงไม่ใช่ 0 เพราะมันถูกเพิ่มค่าทันทีก่อนพิมพ์ ค่าแรกที่พิมพ์จะเป็นค่า 1

Output:
1
2
3
4
6
7
8
9

#สังเกตจะพบว่าไม่มีตัวเลข 5 เพราะตามคำสั่งคือเมื่อ i มีค่าเท่ากับ 5 ให้ข้ามไปขั้นตอน print(i) ไปที่ขั้นตอนต่อไป ซึ่งก็คือขั้นตอนแรกได้เลย นั่นคือ i = 5 หาก i น้อยกว่า 10 ให้เพิ่มค่า i ดังนั้น i จึงมีค่าเป็น 6 จากนั้น i ไม่เท่ากับ 5 แล้ว พิมพ์ค่า i ได้ จึงพิมพ์ 6 และวนการทำงานไปจนกว่าเงื่อนไขจะไม่เป็นจริง คือ i ไม่น้อยกว่า 10

else statement

เมื่อใช้ else statement จะสามารถรัน block ได้อีกหนึ่งอันเมื่อเงื่อนไขไม่เป็นจริงแล้ว เช่น

i = 0
while i < 5:
  i += 1  
  print(i)
else:
  print(‘i is not less than 5’)

#เมื่อ i มีค่าเท่ากับ 5 นั้นหมายความเงื่อนไข i น้อยกว่า 5 ไม่เป็นความจริง แทนที่จะออกจาก loop ทันที โปรแกรมจะพิมพ์ statement สุดท้ายที่อยู่ใน else statement คือ พิมพ์ประโยค i is not less than 5