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

4.2 ตัวอย่างการใช้ loop ในการแก้ปัญหาง่าย ๆ

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

ตัวอย่างที่ 1: การหาผลรวมของตัวเลขในช่วงที่กำหนด
ปัญหา: คำนวณผลรวมของตัวเลขตั้งแต่ 1 ถึง 10

วิธีแก้ปัญหาโดยใช้ for loop

# ใช้ for loop เพื่อหาผลรวมของตัวเลข 1 ถึง 10
sum_result = 0
for i in range(1, 11):
    sum_result += i
print("Sum from 1 to 10:", sum_result)

อธิบาย: ลูปจะทำการบวกค่า i ตั้งแต่ 1 ถึง 10 เข้ากับตัวแปร sum_result ในแต่ละรอบ และแสดงผลรวมออกมาเมื่อจบลูป

วิธีแก้ปัญหาโดยใช้ while loop

# ใช้ while loop เพื่อหาผลรวมของตัวเลข 1 ถึง 10
sum_result = 0
i = 1
while i <= 10:
    sum_result += i
    i += 1
print("Sum from 1 to 10:", sum_result)

อธิบาย: ลูป while จะทำงานจนกว่าเงื่อนไข i <= 10 จะไม่เป็นจริง โดยทำการบวกค่าของ i เข้ากับตัวแปร sum_result และเพิ่มค่า i ทีละ 1 ในแต่ละรอบ

ตัวอย่างที่ 2: การค้นหาค่ามากที่สุดในลิสต์

ปัญหา: ค้นหาค่ามากที่สุดในลิสต์ของตัวเลข

วิธีแก้ปัญหาโดยใช้ for loop

# ใช้ for loop เพื่อหาค่ามากที่สุดในลิสต์
numbers = [10, 20, 5, 35, 7]
max_value = numbers[0]  # สมมติให้ค่าสูงสุดเริ่มต้นที่ตัวแรกในลิสต์

for num in numbers:
    if num > max_value:
        max_value = num

print("Maximum value:", max_value)
อธิบาย: ลูป for จะวนผ่านทุกค่าภายในลิสต์ numbers และตรวจสอบว่าค่าปัจจุบันมากกว่าค่าสูงสุดที่เคยพบหรือไม่ หากใช่ จะกำหนดค่า max_value ใหม่เป็นค่าปัจจุบัน

ตัวอย่างที่ 3: การนับจำนวนเลขคู่ในลิสต์

ปัญหา: นับจำนวนตัวเลขคู่ในลิสต์ของตัวเลข

วิธีแก้ปัญหาโดยใช้ for loop

# ใช้ for loop เพื่อนับจำนวนเลขคู่
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_count = 0

for num in numbers:
    if num % 2 == 0:
        even_count += 1

print("Number of even numbers:", even_count)
อธิบาย: ลูป for จะตรวจสอบทุกค่าภายในลิสต์ว่าเป็นเลขคู่หรือไม่ โดยใช้ตัวดำเนินการ % (modulus) เพื่อตรวจสอบว่าเศษที่ได้จากการหารด้วย 2 เป็นศูนย์หรือไม่ หากเป็นเลขคู่จะเพิ่มค่า even_count

ตัวอย่างที่ 4: การรับค่าจากผู้ใช้จนกว่าจะได้รับคำตอบที่ถูกต้อง

ปัญหา: รับค่ารหัสผ่านจากผู้ใช้จนกว่าจะได้รับรหัสผ่านที่ถูกต้อง

วิธีแก้ปัญหาโดยใช้ while loop

# ใช้ while loop เพื่อรับค่าจากผู้ใช้จนกว่าจะได้รับรหัสผ่านที่ถูกต้อง
password = ""

while password != "1234":
    password = input("Enter your password: ")

print("Access granted!")
อธิบาย: ลูป while จะวนซ้ำและขอรหัสผ่านจากผู้ใช้จนกว่าจะได้รับรหัสผ่านที่ถูกต้อง (1234) ลูปจะหยุดทำงานเมื่อรหัสผ่านถูกต้อง และแสดงข้อความ "Access granted!"

ตัวอย่างที่ 5: การแสดงผลตัวอักษรทีละตัวในสตริง

ปัญหา: แสดงตัวอักษรทีละตัวจากสตริง

วิธีแก้ปัญหาโดยใช้ for loop

# ใช้ for loop เพื่อแสดงผลตัวอักษรทีละตัวจากสตริง
message = "Hello, Python!"
for letter in message:
    print(letter)

อธิบาย: ลูป for จะวนซ้ำในทุกตัวอักษรของสตริง message และแสดงตัวอักษรแต่ละตัวออกมาทีละบรรทัด

สรุป

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