คำสั่ง while คือคำสั่งให้โปรแกรมทำงานวนซ้ำชุดคำสั่งเดิม โดยจะเหมาะสมกับกรณีการวนซ้ำที่ไม่ทราบจำนวนรอบ หรือจำนวนครั้งของการวนซ้ำที่แน่นอน
รูปแบบการใช้งาน
[Image of Python while loop flowchart]
การทำงานของคำสั่ง while คือ ถ้า เงื่อนไขทางเลือก เป็นจริง ชุดคำสั่ง จะถูกเรียกให้ทำงาน 1 ครั้ง แล้วจะวนกลับไปตรวจสอบเงื่อนไขอีกจนกว่าจะเป็นเท็จ จึงจะออกจากการวนซ้ำ
ทดลองเขียนโปรแกรม
1. เปิดโปรแกรม JetBrains PyCharm Edu ขึ้นมา
2. พิมพ์ชุดคำสั่งสำหรับคำนวณหาผลรวมและค่ามากที่สุด:
1x = int(input('ป้อนจำนวนเต็มบวก หรือป้อนเลข 0 ถ้าไม่ต้องป้อนข้อมูลตัวต่อไป'))
2sum = 0
3max = 0
4n = 0
5while x > 0:
6n = n + 1
7sum = sum + x
8if (x > max):
9max = x
10x = int(input('ป้อนจำนวนเต็มบวก หรือป้อนเลข 0 ถ้าไม่ต้องป้อนข้อมูลตัวต่อไป'))
11if n > 0:
12print('ผลรวม', sum, 'และค่ามากที่สุด', max)
3. ผลลัพธ์การทำงาน
อธิบายโปรแกรม
บรรทัดที่ 1: รับข้อมูลจำนวนเต็มบวกตัวแรกเก็บไว้ใน x
บรรทัดที่ 2-4: ประกาศตัวแปรสำหรับเก็บค่าสะสม (sum, max, n)
บรรทัดที่ 5-9: ส่วนของการวนซ้ำ (จะทำงานเมื่อ x > 0 เท่านั้น)
บรรทัดที่ 10: รับข้อมูล x ตัวถัดไปภายในลูป
บรรทัดที่ 11-12: ตรวจสอบว่ามีข้อมูลถูกป้อนเข้ามาไหม ถ้ามีให้แสดงผลรวมและค่ามากที่สุด
อ้างอิง: สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี, “เทคโนโลยี (วิทยาการคำนวณ)”, 2562 หน้า 32
sum = 0
x = 5
while x > 0:
sum = sum + x
x = x - 2
x = 5
while x > 0:
sum = sum + x
x = x - 2
จากโค้ดด้านบน ในรอบที่ 1 โปรแกรมจะทำคำสั่ง sum = sum + x จะได้ค่า sum เป็นเท่าใด?
เมื่อจบรอบที่ 1 ค่าของ x จะเหลือเท่าใด (จากคำสั่ง x = x - 2)?
ลูปนี้จะทำงานวนซ้ำทั้งหมดกี่รอบ จนกว่าเงื่อนไข x > 0 จะเป็นเท็จ?