หน่วยที่ 3 การเขียนโปรแกรมเพื่อแก้ปัญหา
3.4 การวนซ้ำ (for while, do while)
หน่วยที่ 3 การเขียนโปรแกรมเพื่อแก้ปัญหา
3.4 การวนซ้ำ (for while, do while)
การวนซ้ำ (Loop) คือการให้โปรแกรมทำงานซ้ำ ๆ ตามจำนวนรอบหรือจนกว่าเงื่อนไขจะสิ้นสุด
ข้อดี:
ลดการเขียนโค้ดซ้ำ
ควบคุมการทำงานที่ซ้ำกันหลายครั้งได้ง่ายขึ้น
for ตัวแปร in ลำดับข้อมูล:
คำสั่งที่ต้องการทำซ้ำ
ลำดับข้อมูล อาจเป็น range(), list, string ฯลฯ
range(start, stop, step) ใช้กำหนดช่วงตัวเลข
start = จุดเริ่มต้น (ค่าเริ่มต้นคือ 0)
stop = จุดสิ้นสุด (ไม่รวม stop)
step = ค่าที่เพิ่มแต่ละรอบ (ค่าเริ่มต้นคือ 1)
2.2 ใช้กับค่าช่วงที่กำหนดเอง
for i in range(1, 6): # 1 ถึง 5
print(i)
2.3 ใช้กับ step
for i in range(2, 11, 2): # เลขคู่ 2 ถึง 10
print(i)
2.4 ใช้กับ list
fruits = ["apple", "banana", "mango"]
for fruit in fruits:
print(fruit)
2.5 การใช้ for ซ้อน for (Nested Loop)
for i in range(1, 3):
for j in range(1, 4):
print(i, j)
3. การวนซ้ำแบบ while
3.1 โครงสร้าง
while เงื่อนไข:
คำสั่งที่ต้องการทำซ้ำ
ตัวอย่าง
count = 1
while count <= 5:
print(count)
count += 1
break → หยุดลูปทันที
continue → ข้ามรอบนี้แล้วไปทำรอบถัดไป
x = 0
while x < 5:
x += 1
if x == 3:
continue
print(x)
Python ไม่มี do while โดยตรง แต่ใช้ while True + break ได้
while True:
num = int(input("กรอกตัวเลข (0 เพื่อออก): "))
if num == 0:
break
print("คุณกรอก:", num)
หลักการของ do while:
รันโค้ด อย่างน้อย 1 ครั้ง ก่อนตรวจสอบเงื่อนไข
5. ตัวอย่างการใช้งานจริง
5.1 for loop – ตารางสูตรคูณ
for i in range(2, 6):
for j in range(1, 13):
print(f"{i} x {j} = {i*j}")
print()
5.2 while loop – นับถอยหลัง
count = 5
while count > 0:
print(count)
count -= 1
print("หมดเวลา!")
5.3 do while – รับรหัสผ่านจนกว่าจะถูกต้อง
while True:
pwd = input("กรอกรหัสผ่าน: ")
if pwd == "1234":
print("ถูกต้อง!")
break
print("รหัสผิด ลองใหม่")
5.3 do while – รับรหัสผ่านจนกว่าจะถูกต้อง
while True:
pwd = input("กรอกรหัสผ่าน: ")
if pwd == "1234":
print("ถูกต้อง!")
break
print("รหัสผิด ลองใหม่")
งานที่ 12 แบบฝึกหัด: คำสั่ง Loop
คำสั่ง : ให้นักเรียนทำโจทย์ต่อไปนี้ให้ถูกต้อง โดยใช้ภาษา Python(ไพทอน) ในการแก้ปัญหา
ส่วนที่ 1 – พื้นฐาน
1. ใช้ for แสดงเลข 1 ถึง 10
2. ใช้ for แสดงเลขคู่ 2 ถึง 20
3. ใช้ while แสดงเลข 5 ถึง 1 แบบนับถอยหลัง
4. ใช้ while รับชื่อต่อเนื่องจนกว่าจะพิมพ์ "stop"
ส่วนที่ 2 – ประยุกต์
5. ใช้ for แสดงตารางสูตรคูณแม่ 9
6. ใช้ while ให้ผู้ใช้พิมพ์คะแนนและนับจำนวนคนที่ “ผ่าน” (≥ 50) จนกว่าจะพิมพ์ -1
7. ใช้โครงสร้าง do while (จำลอง) ให้ผู้ใช้เดาตัวเลข 1–5 จนกว่าจะถูกต้อง