
ว21172 เทคโนโลยี (วิทยาการคำนวณ)2
Benjamarachutit
Computing science2
3.3 คำสั่งวนซ้ำ
ในการเขียนโปรแกรมโดยส่วนใหญ่จำเป็นต้องเขียนคำสั่งเพื่อทำงานเดิมซ้ำกันหลายๆครั้ง การใช้คำสั่งทำซ้ำวนไปหลายๆรอบนั้นเรียกว่า Loop
การใช้คำสั่ง Loop มีสองแบบได้แก่
-
แบบที่รู้จำนวนครั้งในการทำซ้ำแน่นอน เรียกว่า definite loop
-
แบบที่ไม่รู้จำนวนครั้งในการทำซ้ำ เรียกว่า indefinite loop จำเป็นต้องตั้งเงื่อนไขในการทำงาน ถ้าเงื่อนไขในการทำงานเป็นเท็จก็จะหยุดทำงาน
โดยปกติแล้วถ้าเป็นรู้จำนวนครั้งที่ต้องทำงานซ้ำแน่นอนจะใช้คำสั่ง for แต่ถ้าไม่รู้จำนวนครั้งที่แน่นอนต้องใช้เงื่อนไขตรวจสอบการทำงานจะใช้คำสั่ง while
3.3.1 การวนซ้ำด้วยคำสั่ง for
ในpython นิยม ใช้ for loop ร่วมกับ range()
ตัวอย่าง
for i in range(2):
print("ปิงปอง")
จากตัวอย่างเป็นการแสดงผล ปิงปอง 2 ครั้ง
range เป็นการกำหนดจำนวนรอบ แบบ index โดยมีค่าเริ่มต้น i =0 จนถึงก่อน 2
ตัวอย่าง
for i in range(10):
print("%d"%i)
3.3.1 การวนซ้ำด้วยคำสั่ง while
ในการเขียนโปรแกรมให้ทำงานวนซ้ำชุดคำสั่งเดิม นอกจากคำสั่ง for แล้ว ภาษาไพทอนยังมีคำสั่ง while ให้เลือกใช้งาน ซึ่งคำสั่ง while จะเหมาะสมกับกรณีการวนซ้ำที่ไม่ทราบจำนวนรอบหรือจำนวนครั้งของการวนซ้ำที่แน่นอน มีรูปแบบการใช้ดังนี้


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

ตัวอย่างที่ 3.5 อธิบายได้ดังนี้
1. บรรทัดที่ 1 รับข้อมูลจํานวนเต็มบวกตัวแรก เก็บไว้ในตัวแปร x โดยผู้ใช้จะป้อน 0 หากไม่มีข้อมูลแล้ว เนื่องจากข้อมูลที่ต้องการให้หาผลลัพธ์เป็นจํานวนเต็มบวกเท่านั้น จึงใช้เลข 0 เป็นเงื่อนไขในการตรวจ สอบว่าหมดชุดข้อมูลแล้ว
2. บรรทัดที่ 2 ถึง 4 กําหนดค่าเริ่มต้นให้กับตัวแปรที่จะใช้เก็บค่าผลรวม (sum) ค่ามากที่สุด (max) และจํานวน
ข้อมูล (n)
3. บรรทัดที่ 5 เป็นคําสั่ง while และกําหนดเงื่อนไขตรวจสอบการวนซ้ํา คือ x ต้องเป็นจํานวนเต็มบวก
4. บรรทัดที่ 6 ถึง 10 เป็นชุดคําสั่งภายใต้บล็อก while โดยบรรทัดที่ 6 นับจํานวนข้อมูลเก็บไว้ในตัวแปร n บรรทัด ที่ 7 เก็บผลรวมข้อมูลไว้ในตัวแปร sum บรรทัดที่ 8 ถึง 9 หาค่ามากที่สุดจากข้อมูลทั้งหมด และบรรทัดที่ 10 รับ ข้อมูลตัวถัดไป
5. บรรทัดที่ 11 ถึง 12 ถ้ามีข้อมูลตั้งแต่ 1 ตัวขึ้นไป ให้พิมพ์ผลลัพธ์ที่หาได้
