Definer Infinite Loop

Definer Infinite Loop


I programmering, er en sløyfe en rekke instruksjoner en datamaskin utfører et fast antall ganger. En uendelig løkke er en løkke som kan kjøre evig hvis noen ekstern hendelse fører til at løkken for å avslutte. Heldigvis er de fleste uendelige løkker gjør slutt. Men når de ikke gjør det, kan det oppstå problemer og påvirke et program eller datamaskinen som er vert det.

trivia

\ "Infinite Loop \" er en gate som omgir Apple Computers hovedkontor i Cupertino, California. Hver av de seks bygninger som utgjør komplekset har en enkelt-sifret adressen. Denne unike kombinasjonen av datamaskinen begrepet \ "Infinite Loop \" og singelen-sifret adresse struktur brukes av selskapet gir Apple en offisiell adresse på \ "en Infinite Loop. \" Uttrykket \ "Infinite Loop \" er også tittelen av en bok av Michael Malone som skildrer begynnelsen av Apple Computer.

Misforståelse

Mange uendelige løkker er egentlig uendelig. På et tidspunkt vil en prosess bringe dem til å stoppe opp. Denne prosessen kan være nedleggelse av en nettleser eller til omstart av en datamaskin. Programmerere noen ganger refererer til ikke-uendelige løkker som uendelig. Et eksempel på et avgrenset uendelig loop er en webside animasjon. Ved hjelp av Javascript, kan en utvikler lage en løkke som flytter et objekt med noen sekunders mellomrom. Sløyfen ville utføre gjentatte ganger. Imidlertid kan det til slutt opphøre dersom utbygger beslutter å kode programmet slik animasjonen stopper når objektet når et forhåndsdefinert punkt på skjermen.

Coding

Følgende uttalelse illustrerer hvordan en utvikler lager en vanlig løkke i et program:

loopCounter = 0

loopLimit = 100

mens loopCounter er mindre enn loopLimit
begynne

(gjør noe)

(Legg en til loopCounter)
slutt

Denne koden sier, \ "Mens loopCounter (0) er mindre enn loopLimit (100), gjøre noe. \" Sløyfen skal gjenta 100 ganger. For å opprette en uendelig løkke, gjør en utbygger at verdien av loopCounter aldri når 100. Han kunne gjøre det ved å ekskludere den \ "(legg den loopCounter) \" uttalelse eller ved å erstatte \ "mens loopCounter er mindre enn loopLimit \" uttalelse med \ "mens en er lik 1. \" Hvis en utvikler gjør det, vil løkken aldri slutt fordi man vil alltid lik en.

eksempler

Timere og klokker på enkelte nettsider noen ganger kjører inne uendelige løkker. Sløyfen begynner når en besøkende åpner en side, og det fortsetter til den besøkende forlater siden. Noen overvåkingsprogrammer stole på uendelig løkke behandling for å holde et øye med lokale eller eksterne prosesser. For eksempel kan du lage en Windows Service program som henter data fra en webtjeneste hver time og lagrer den i en database.

advarsler

Uendelige løkker er ikke vanskelig å lage. Faktisk noen utviklere lage dem utilsiktet. Når dette skjer, desktop og web-baserte applikasjoner kan sløyfe kontinuerlig, forbruker store mengder systemressurser. Følgende er et eksempel på en felles ikke-uendelig løkke definert innenfor en Javascript-funksjon:

Var loopLimit = 100

for (var i = 0; i <loopLimit; i ++) {
// gjør noe
}

Denne sløyfen vil \ "gjøre noe \" til den når grensen satt av variabelen, \ "loopLimit. \" I dette eksempelet løkken vil kjøre 100 ganger. Men hva skjer hvis verdien av loopLimit blir økes med en annen funksjon? Hvis det skjer, kan det hende at loopen aldri slutt. Utviklere bør være klar over denne felles programmeringsfeil. Andre utilsiktede løkker kan oppstå hvis en utvikler er avhengig av noen ytre hendelse, for eksempel et museklikk, for å stoppe sløyfen og at hendelsen ikke skal skje.