Skip to main content

Hvad er en uendelig loop?

En uendelig loop er en tilstand, der får et computerprogram til at fortsætte med at udføre en kommando uden ende.Dette skyldes typisk en af tre årsager: Programmet har ingen slutbetingelse, programmets sluttilstand er uopnåelig, eller en gentagelseskommando får et program til kontinuerligt at genstarte.Det meste af tiden vil en uendelig loop få en computer til at bremse eller endda låse sig sammen.I de tidlige computere ville disse sløjfer ofte kræve en genstart, men moderne operativsystemer vil ofte fange dem og afslutte programmet, før de kommer ud af hånden.

Der findes uendelige sløjfer inden for programmering;Andre anvendelser af udtrykket er normalt forkerte.I de fleste tilfælde er uendelige sløjfer ikke slutmålet for programmet, og der findes et problem et sted i koden, der får tilstanden til at forekomme.Hver af de tre hovedtilfælde af en uendelig sløjfe er fuldstændig programmerings- og softwarebaseret.

Når et program ikke har nogen slutbetingelse, vil det fortsætte med at udføre sit sidste sæt instruktioner uden ende.I mange tilfælde vil dette resultere i, at programmet låser sig, når det venter på en eller anden endelig instruktion, der aldrig kommer.Andre gange var den sidste instruktion, der blev givet til programmet, en instruktion eller behandling af en kommando.I disse tilfælde vil det fortsætte med at gøre disse ting uden ende.Dette vil få computeren til langsomt at fylde med gentagne kommandoer fra den uendelige sløjfe, indtil hele systemet arbejder på et problem uden ende.

Der findes en lignende situation, når et programs sluttilstand er uopnåelig.I dette tilfælde kan programmet ende, men det vil det aldrig.Problemet med slutpunktet kan være i programmeringen, eller det kan være en computerfejl, der forårsager tilstanden.For eksempel, hvis et program beder om et specifikt stykke information fra et specifikt sted, ville en programmeringsfejl være, at oplysningerne gemmes på et andet sted.På den anden side, hvis oplysningerne går til programmet, men afbrydes på grund af interferens fra brugeren eller et andet program, kan de simpelthen aldrig ankomme.

Den sidste årsag til en uendelig loop er fuldstændig programmeringsbaseret.Et sted inden for programmeringen er en kommando, der fortæller programmet om at gentage noget.Selvom disse kommandoer er almindelige, bør betingelserne aldrig give den gentagne kommando mulighed for at vende tilbage til den første gentagelse.Hvis dette sker, udfører programmet en kommando, rammer gentagelseserklæringen, udfører derefter kommandoen igen, gentag derefter igen osv.Disse sløjfer er mest sandsynligt at blive bevidst programmeret, ofte som en del af et stykke malware.