บทที่ 4: การทำซ้ำ (Loops)
4.3 การใช้คำสั่ง break และ continue เพื่อควบคุม loop
ในบางสถานการณ์ การควบคุมลูปให้ทำงานตามที่เราต้องการนั้นสำคัญมาก เช่น การหยุดลูปก่อนที่ลูปจะทำงานครบทุกครั้ง หรือการข้ามรอบบางรอบของลูป คำสั่ง break และ continue ช่วยให้เราสามารถควบคุมการทำงานของลูปได้ง่ายขึ้น
การใช้คำสั่ง break
คำสั่ง break ใช้เพื่อหยุดการทำงานของลูปทันที เมื่อโปรแกรมเจอคำสั่งนี้ ลูปจะหยุดทำงานและออกจากลูป แม้ว่าเงื่อนไขของลูปจะยังเป็นจริงอยู่ก็ตาม
ตัวอย่างการใช้ break
# การใช้ break เพื่อหยุดลูปเมื่อเจอค่าที่ต้องการ
numbers = [1, 2, 3, 4, 5]
for num in numbers:
if num == 3:
break # หยุดลูปเมื่อเจอค่า 3
print(num)
อธิบาย: ลูป for นี้จะวนซ้ำไปเรื่อย ๆ จนกระทั่งเจอค่า 3 เมื่อลูปเจอค่า 3 จะหยุดทำงานทันที ดังนั้นโปรแกรมจะแสดงค่า 1 และ 2 เท่านั้น
การใช้คำสั่ง continue
คำสั่ง continue ใช้เพื่อข้ามการทำงานในรอบลูปปัจจุบัน และเริ่มต้นทำงานในรอบลูปถัดไปทันที คำสั่งนี้ไม่หยุดลูปเหมือน break แต่จะข้ามคำสั่งที่เหลือในรอบนั้น ๆ และกลับไปทำงานที่จุดเริ่มต้นของลูปอีกครั้ง
ตัวอย่างการใช้ continue
# การใช้ continue เพื่อข้ามค่าที่ไม่ต้องการประมวลผล
for i in range(1, 6):
if i == 3:
continue # ข้ามการประมวลผลเมื่อเจอค่า 3
print(i)
อธิบาย: ลูปนี้จะแสดงตัวเลข 1, 2, 4, และ 5 โดยจะข้ามการพิมพ์ค่า 3 ออกไป เพราะเมื่อ i เท่ากับ 3 โปรแกรมจะข้ามคำสั่ง print(i) และเริ่มรอบลูปใหม่ทันที
การใช้ break และ continue ร่วมกับ while loop
คำสั่ง break และ continue สามารถใช้กับลูปประเภทอื่น เช่น while loop ได้ด้วยเช่นกัน โดยการทำงานจะคล้ายกับใน for loop
ตัวอย่างการใช้ break ใน while loop
# หยุดลูปเมื่อผู้ใช้ป้อนตัวเลขที่ถูกต้อง
while True:
number = int(input("Enter a number between 1 and 10: "))
if 1 <= number <= 10:
print("Good job!")
break # หยุดลูปเมื่อผู้ใช้ป้อนตัวเลขที่ถูกต้อง
print("Try again.")
อธิบาย: โปรแกรมนี้จะวนลูปเรื่อย ๆ จนกว่าผู้ใช้จะป้อนตัวเลขระหว่าง 1 ถึง 10 เมื่อได้รับตัวเลขที่ถูกต้อง ลูปจะหยุดทันทีด้วยคำสั่ง break
ตัวอย่างการใช้ continue ใน while loop
# แสดงเฉพาะตัวเลขคี่
i = 0
while i < 10:
i += 1
if i % 2 == 0:
continue # ข้ามเลขคู่
print(i)
อธิบาย: ลูปนี้จะเพิ่มค่า i ทีละ 1 และแสดงเฉพาะเลขคี่ โดยข้ามเลขคู่ด้วยคำสั่ง continue
การใช้ break และ continue ในการแก้ปัญหาจริง
ตัวอย่างการใช้ break ในการค้นหาค่าที่ต้องการ
# ค้นหาค่าที่เจาะจงและหยุดเมื่อเจอ
numbers = [1, 2, 3, 4, 5]
target = 4
for num in numbers:
if num == target:
print("Found the target:", target)
break # หยุดลูปเมื่อเจอค่าที่ต้องการ
อธิบาย: ลูปนี้จะหยุดทำงานทันทีเมื่อเจอค่าที่ตรงกับ target ซึ่งคือ 4
ตัวอย่างการใช้ continue ในการกรองข้อมูล
# กรองเฉพาะข้อมูลที่ตรงกับเงื่อนไข
numbers = [1, -2, 3, -4, 5]
for num in numbers:
if num < 0:
continue # ข้ามค่าที่เป็นลบ
print(num)
อธิบาย: ลูปนี้จะแสดงเฉพาะค่าบวกในลิสต์ โดยจะข้ามค่าที่เป็นลบออกไปด้วยคำสั่ง continue
สรุป
การใช้คำสั่ง break และ continue ช่วยให้เราควบคุมการทำงานของลูปได้อย่างยืดหยุ่นมากขึ้น คำสั่ง break จะหยุดการทำงานของลูปทันทีเมื่อถึงจุดที่เราต้องการหยุด ส่วนคำสั่ง continue จะข้ามการทำงานในรอบนั้น ๆ และเริ่มทำงานใหม่ในรอบถัดไป การเข้าใจและใช้คำสั่งเหล่านี้อย่างถูกต้องจะช่วยให้โปรแกรมของเรามีประสิทธิภาพมากขึ้นในการจัดการกับข้อมูลและการทำงานซ้ำ