Skip to main content

ลูปอนันต์คืออะไร?

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

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

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

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

สาเหตุสุดท้ายของการวนซ้ำที่ไม่มีที่สิ้นสุดนั้นใช้การเขียนโปรแกรมอย่างสมบูรณ์บางแห่งภายในการเขียนโปรแกรมเป็นคำสั่งที่บอกให้โปรแกรมทำซ้ำบางสิ่งในขณะที่คำสั่งเหล่านี้เป็นเรื่องธรรมดาเงื่อนไขไม่ควรอนุญาตให้คำสั่งซ้ำกลับมาที่การทำซ้ำครั้งแรกหากสิ่งนี้เกิดขึ้นโปรแกรมจะเรียกใช้คำสั่งให้กดคำสั่งซ้ำจากนั้นเรียกใช้คำสั่งอีกครั้งจากนั้นทำซ้ำอีกครั้งและอื่น ๆลูปเหล่านี้มีแนวโน้มมากที่สุดที่จะตั้งโปรแกรมโดยเจตนาซึ่งมักจะเป็นส่วนหนึ่งของชิ้นส่วนของมัลแวร์