ในบทความนี้ เราจะเรียนรู้เกี่ยวกับคำสั่ง loop-else ใน Python 3.x หรือเวอร์ชันก่อนหน้า ในบทช่วยสอนนี้ เราจะเน้นที่วิธีการทำงานของ for loop และ else statement
ในภาษาอื่นๆ ฟังก์ชัน else มีให้ใช้เฉพาะในคู่ if-else เท่านั้น แต่ Python อนุญาตให้เรานำฟังก์ชัน else ไปใช้กับ for loops ได้ด้วย
ฟังก์ชัน else พร้อมใช้งาน فقطเมื่อลูปสิ้นสุดลงอย่างปกติ (normally) ในกรณีที่ลูปถูกยกเลิกโดยบังคับ (forceful termination) else statement จะถูกมองข้ามโดย interpreter และการทำงานของมันจะถูกข้าม
ตอนนี้มาดูภาพรวมอย่างรวดเร็วผ่านภาพประกอบบางอย่างเพื่อเข้าใจ loop-else statement ให้ดีขึ้น
ILLUSTRATION 1: For-Else Construct ที่สิ้นสุดปกติ
ตัวอย่าง
for i in ['T', 'P']:
print(i)
else: # Loop else statement
print("Loop-else statement successfully executed")
ผลลัพธ์
T P Loop-else statement successfully executed
ILLUSTRATION 2: For-Else Construct ที่สิ้นสุดโดยบังคับ
ตัวอย่าง
for i in ['T', 'P']:
print(i)
break
else: # Loop else statement
print("Loop-else statement successfully executed")
ผลลัพธ์
T
คำอธิบาย − Loop else statement ถูกดำเนินการใน ILLUSTRATION 1 เนื่องจาก for loop สิ้นสุดลงอย่างปกติหลังจากทำซ้ำครบลิสต์ ['T','P'] แต่ใน ILLUSTRATION 2 loop-else statement ไม่ได้ถูกดำเนินการ เนื่องจากลูปถูกยกเลิกโดยบังคับด้วยคำสั่งกระโดดเช่น break
ภาพประกอบเหล่านี้ชี้ให้เห็นชัดเจนว่า loop-else statement ไม่ได้ทำงานเมื่อลูปถูกยกเลิกโดยบังคับ
ตอนนี้มาดูภาพประกอบที่ในบางเงื่อนไข loop-else statement ถูกดำเนินการ และบางอย่างไม่
ตัวอย่าง
def pos_neg_test():
for i in [5, 6, 7]:
if i >= 0:
print("Positive number")
else:
print("Negative number")
break
else:
print("Loop-else Executed")
# main function
pos_neg_test()
ผลลัพธ์
Positive number Positive number Positive number Loop-else Executed
คำอธิบาย − ที่นี่ else block ใน if-else construct ไม่ได้ถูกดำเนินการ เพราะเงื่อนไข if เป็นจริง Loop-Else statement จึงถูกดำเนินการ
ถ้าเราแทนลิสต์ใน for loop [5, 6, 7] ด้วย [7, -1, 3] ผลลัพธ์จะเปลี่ยนเป็น
ผลลัพธ์
Positive number Negative number
สรุป
ในบทความนี้ เราได้เรียนรู้การนำ loop-else statement ไปใช้งานและหลากหลายวิธีที่มันสามารถนำไปใช้งานได้