เพิ่มเงื่อนไข
while loop ที่ปรับค่า offset เป็นจุดเริ่มต้นที่ดี แต่จะเกิดอะไรขึ้นถ้า offset มีค่าติดลบ? ลองรันโค้ดด้านล่างนี้ โดยกำหนดให้ offset เริ่มต้นที่ -6:
# Initialize offset
offset = -6
# Code the while loop
while offset != 0 :
print("correcting...")
offset = offset - 1
print(offset)
เซสชันจะถูกตัดการเชื่อมต่อ เพราะ while loop จะไม่หยุดทำงาน — ค่า offset จะลดลงเรื่อย ๆ ทุกรอบ ทำให้ offset != 0 ไม่มีวันเป็น False และ loop ก็จะวนซ้ำไปตลอด
แก้ไขปัญหานี้ด้วยการเพิ่มคำสั่ง if-else ไว้ภายใน while loop
หากว่า while loop ใช้เวลารันนานเกินไป หรือเซสชันหมดอายุ แสดงว่าอาจเกิด infinite loop ขึ้น อย่าลืม ย่อหน้า เนื้อหาภายใน loop ด้วย 4 ช่องว่างหรือใช้การย่อหน้าอัตโนมัติ และตรวจสอบให้แน่ใจว่าเงื่อนไขที่กำหนดไว้ทำให้ loop มีจุดสิ้นสุด
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python ระดับกลาง
คำแนะนำการฝึกหัด
- กำหนดค่าเริ่มต้นของ
offsetเป็น-6 - ภายใน
whileloop ให้เติมคำสั่งif-elseให้ครบ:- ถ้า
offsetมีค่ามากกว่าศูนย์ ให้ลดค่าoffsetลง 1 - มิฉะนั้น ให้เพิ่มค่า
offsetขึ้น 1
- ถ้า
หากโค้ดใช้เวลารันนานเกินไป (หรือเซสชันหมดอายุ) แสดงว่ามีข้อผิดพลาดเกิดขึ้น ตรวจสอบโค้ดและให้แน่ใจว่า offset != 0 จะประเมินค่าเป็น FALSE ในที่สุด!
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Initialize offset
offset = -6
# Code the while loop
while offset != 0 :
print("correcting...")
if ____ :
____
else :
____
print(offset)