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