Een oneindige lus (soms een endless loop genoemd) is een stukje codering dat geen functionele uitgang heeft, zodat het zich oneindig herhaalt. In computerprogrammering is een lus een opeenvolging van instructies die voortdurend wordt herhaald totdat een bepaalde voorwaarde is bereikt. Gewoonlijk wordt een bepaald proces uitgevoerd, zoals het verkrijgen van een gegeven en het wijzigen daarvan, en vervolgens wordt een bepaalde voorwaarde gecontroleerd, zoals of een teller een voorgeschreven getal heeft bereikt. Als niet kan worden vastgesteld of aan de voorwaarde is voldaan, vertelt de volgende instructie in de reeks het programma terug te keren naar de eerste instructie en de reeks te herhalen, die meestal doorgaat tot het programma na een bepaalde tijd automatisch wordt beëindigd, of het besturingssysteem het programma met een fout beëindigt.
In de regel is een oneindige lus het gevolg van een programmeerfout - bijvoorbeeld wanneer de voorwaarden voor het verlaten van de lus onjuist zijn geschreven. Opzettelijk gebruikte oneindige lussen zijn programma s die continu moeten draaien, zoals productdemo s of in de programmering voor ingebedde systemen.
Een pseudo oneindige lus is een lus die oneindig lijkt te zijn, maar die op een gegeven moment toch echt stopt.