Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

แก้ไข SyntaxError: continue not properly in loop ใน Python

คำสั่ง continue ใช้สำหรับข้ามไปรอบถัดไปของลูปทันที หากใช้ continue statement นอกเหนือจาก for loop หรือ while loop จะเกิดข้อผิดพลาด SyntaxError: continue not properly in loop

คู่มือนี้อธิบายความหมายของข้อผิดพลาดและสาเหตุ พร้อมตัวอย่างเพื่อให้คุณเข้าใจและแก้ไขได้

ทำความเข้าใจ SyntaxError: continue not properly in loop

Continue statement ให้โปรแกรมข้ามไปยัง iteration ถัดไปของ for loop หรือ while loop Continue statements คล้าย break statements ไม่รับ arguments มันทำงานเป็นตัวเดียวในโปรแกรม

คุณสามารถใช้ continue statement ได้เฉพาะในลูปเท่านั้น เพราะ continue statements ออกแบบมาเพื่อใช้ในลูป คุณไม่สามารถใช้ continue statement เพื่อสั่งให้โปรแกรม continue นอกลูปได้ เพราะไม่มีบริบทให้ keyword ตีความว่าอะไรควร continue

Continue statements สามารถอยู่ภายใน if statement หรือบล็อกโค้ดอื่นๆ ได้ ตราบใดที่บล็อกโค้ดนั้นอยู่ภายในลูป

ตัวอย่างสถานการณ์

เราจะสร้างโปรแกรมตรวจสอบ input สำหรับระบบจัดการสต็อกที่ร้านกาแฟ Input ถือว่า valid ถ้ามีความยาวอย่างน้อย 3 ตัวอักษร

เริ่มต้นด้วยการให้ผู้ใช้ป้อนชื่อสินค้า:

product_name = input("Enter the product name: ")

ต่อมา ตรวจสอบความยาวของ input ด้วย if statement:

if len(product_name) < 3:
    print("Product names must be at least three characters long.")
    continue
else:
    break
print("Your product name is valid.")

หากผู้ใช้ป้อนชื่อสินค้าสั้นกว่า 3 ตัวอักษร จะพิมพ์ข้อความและรัน continue statement มิฉะนั้นจะรัน break statement เราใช้ len() เพื่อหาความยาวชื่อสินค้า

หากชื่อสินค้า valid จะแสดงข้อความยืนยัน

ลองรันโค้ด:

 File "main.py", line 3
    continue
    ^
SyntaxError: 'continue' not properly in loop

โค้ดคืนค่าข้อผิดพลาด

วิธีแก้ไข

เราใช้ continue statements เพื่อบอกโปรแกรมให้ทำงานต่อหากเงื่อนไขเป็นจริง แม้จะใช้ continue ใน if statement ได้ แต่ continue statement ต้องอยู่ภายในลูป

โค้ดของเราไม่ได้ใช้ลูป ทำให้การใช้ continue ไม่สมเหตุสมผลและก่อให้เกิดข้อผิดพลาด วิธีแก้คือใส่โค้ดทั้งหมดไว้ในลูป:

while True:
    product_name = input("Enter the product name: ")
    if len(product_name) < 3:
        print("Product names must be at least three characters long.")
        continue
    else:
        break
    print("Your product name is valid.")

เราเปลี่ยนแปลงเพียงอย่างเดียว คือ ใส่โค้ดทั้งหมดใน while loop หมายความว่าผู้ใช้จะถูกพูดให้ป้อนชื่อสินค้าจนกว่าลูปจะหยุด

ลูปจะหยุดก็ต่อเมื่อผู้ใช้ป้อนชื่อสินค้าที่ถูกต้อง มิฉะนั้นจะพิมพ์ข้อความและวนลูปใหม่

ลองรันโปรแกรม:

Your product name is valid.
Enter the product name: Rwandan

โค้ดรันสำเร็จ! ลองทดสอบกับชื่อสินค้าที่ไม่ถูกต้อง:

Enter the product name: RW
Product names must be at least three characters long.
Enter the product name:

โปรแกรมแจ้งว่าชื่อสินค้าไม่ถูกต้องและพูดให้ป้อนใหม่

สรุป

ข้อผิดพลาด SyntaxError: continue not properly in loop เกิดขึ้นเมื่อใช้ continue statement นอก for loop หรือ while loop วิธีแก้คือ ใส่ continue statements ทั้งหมดในโค้ดไว้ภายในลูป

ตอนนี้คุณมีความรู้เพื่อแก้ไขข้อผิดพลาดนี้อย่างมืออาชีพแล้ว!