บทที่ 4: การทำซ้ำ (Loops)

4.1 การใช้ for loop และ while loop

การเขียนโปรแกรมที่มีลูป (Loops) เป็นการทำซ้ำคำสั่งหลาย ๆ ครั้งตามเงื่อนไขที่กำหนดไว้ ลูปช่วยให้โปรแกรมทำงานซ้ำ ๆ โดยไม่ต้องเขียนโค้ดซ้ำ ๆ หลายบรรทัด Python มีลูปที่ใช้บ่อยอยู่สองประเภทคือ for loop และ while loop ซึ่งแต่ละประเภทมีวิธีการทำงานที่แตกต่างกันไปเล็กน้อย

1. for loop

for loop ใช้ในการทำงานซ้ำกับลิสต์ (list), ชุดข้อมูล (range), หรือ object ที่ทำซ้ำได้ (iterable) ลูปนี้จะทำงานตามจำนวนครั้งที่กำหนดไว้ในชุดข้อมูลนั้น ๆ

โครงสร้างของ for loop

for ตัวแปร in ชุดข้อมูล:
    # คำสั่งที่จะถูกทำซ้ำ

ตัวอย่างการใช้งาน for loop

# การใช้ for loop กับลิสต์
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

อธิบาย: ลูปนี้จะวนผ่านแต่ละค่าในลิสต์ fruits และพิมพ์ชื่อผลไม้ออกมาทีละตัว

ตัวอย่างการใช้ for loop กับ range()

# การใช้ for loop กับ range
for i in range(5):
    print(i)

อธิบาย: range(5) จะสร้างชุดข้อมูลที่ประกอบด้วยตัวเลขตั้งแต่ 0 ถึง 4 ลูปนี้จะทำซ้ำและพิมพ์ตัวเลขแต่ละตัวออกมา

การใช้งาน for loop กับการคำนวณ

# การหาผลรวมของตัวเลขในลิสต์
numbers = [1, 2, 3, 4, 5]
sum_result = 0
for num in numbers:
    sum_result += num
print("Sum:", sum_result)

อธิบาย: โปรแกรมนี้จะคำนวณผลรวมของตัวเลขในลิสต์ numbers

2. while loop

while loop ใช้ทำงานซ้ำ ๆ ตามเงื่อนไขที่กำหนด เมื่อเงื่อนไขเป็นจริง (True) ลูปจะทำงานต่อไปเรื่อย ๆ จนกว่าเงื่อนไขจะเป็นเท็จ (False)

โครงสร้างของ while loop

while เงื่อนไข:
    # คำสั่งที่จะถูกทำซ้ำ

ตัวอย่างการใช้งาน while loop

# การใช้ while loop
i = 1
while i <= 5:
    print(i)
    i += 1

อธิบาย: ลูปนี้จะวนซ้ำและพิมพ์ค่า i จาก 1 ถึง 5 โดยลูปจะหยุดเมื่อเงื่อนไข i <= 5 ไม่เป็นจริง

การเปรียบเทียบระหว่าง for และ while loop

  • for loop เหมาะสำหรับการทำงานซ้ำที่รู้จำนวนครั้งแน่นอน หรือใช้กับชุดข้อมูลที่สามารถนับได้
  • while loop เหมาะสำหรับการทำงานซ้ำตามเงื่อนไขที่ไม่สามารถกำหนดจำนวนรอบที่แน่นอนได้ โดยลูปจะทำงานจนกว่าเงื่อนไขจะเป็นเท็

ตัวอย่างที่ซับซ้อนขึ้น

การใช้ for loop และ while loop ในการทำงานจริง

# การใช้ while loop เพื่อรับข้อมูลจากผู้ใช้จนกว่าจะได้รับข้อมูลที่ถูกต้อง
password = ""
while password != "1234":
    password = input("Enter your password: ")
print("Access granted!")

อธิบาย: ลูปนี้จะวนซ้ำเพื่อขอรหัสผ่านจากผู้ใช้เรื่อย ๆ จนกว่าจะได้รับรหัสผ่านที่ถูกต้อง

การใช้ for loop และ break เพื่อหยุดลูป

# หยุดลูปเมื่อเจอค่าที่ต้องการ
numbers = [1, 2, 3, 4, 5]
for num in numbers:
    if num == 3:
        print("Found 3!")
        break  # หยุดลูปเมื่อเจอค่า 3

อธิบาย: ลูปจะหยุดทำงานทันทีเมื่อพบค่าที่ต้องการ (3)

การใช้งาน continue ในลูป

คำสั่ง continue ใช้เพื่อข้ามคำสั่งในลูปและเริ่มทำงานใหม่ในรอบถัดไป

# ข้ามการพิมพ์ค่าที่เป็นเลขคู่
for i in range(1, 6):
    if i % 2 == 0:
        continue  # ข้ามค่าที่เป็นเลขคู่
    print(i)

อธิบาย: ลูปนี้จะข้ามการพิมพ์ค่าที่เป็นเลขคู่ และจะแสดงเฉพาะเลขคี่เท่านั้น

สรุป

การใช้ for loop และ while loop เป็นวิธีที่มีประสิทธิภาพในการทำงานซ้ำในโปรแกรม Python ซึ่งสามารถช่วยลดการเขียนโค้ดที่ซ้ำซ้อน การเข้าใจการทำงานของลูปทั้งสองประเภทนี้จะช่วยให้โปรแกรมของเรามีความยืดหยุ่นและใช้งานได้ดีในสถานการณ์ที่แตกต่างกัน เช่น การทำงานกับข้อมูลในลิสต์ การทำซ้ำตามเงื่อนไข หรือการวนลูปเพื่อรับค่าจากผู้ใช้