บทที่ 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 จะข้ามการทำงานในรอบนั้น ๆ และเริ่มทำงานใหม่ในรอบถัดไป การเข้าใจและใช้คำสั่งเหล่านี้อย่างถูกต้องจะช่วยให้โปรแกรมของเรามีประสิทธิภาพมากขึ้นในการจัดการกับข้อมูลและการทำงานซ้ำ