I dataprogrammering, er en sløyfe en rekke instruksjoner en datamaskin utfører et visst antall ganger . En uendelig loop er en loop som kan kjøre for alltid med mindre noen ekstern hendelse fører til at loopen skal avslutte . Heldigvis er de fleste uendelige løkker gjøre slutt. Men når de ikke gjør det, kan det oppstå problemer og påvirke et program eller datamaskinen som er vert for det . Trivia
"Infinite Loop " er en gate som omgir Apple Computer hovedkontor i Cupertino , California. Hver av de seks bygninger som utgjør komplekset har en enkelt - siffer adresse . Denne unike kombinasjonen av datamaskinen begrepet " Infinite Loop " og singelen -sifret adresse som benyttes av selskapet gir Apple en offisiell adresse " 1 Infinite Loop . " Uttrykket "Infinite Loop " er også tittelen på en bok av Michael Malone som chronicles 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 gjenstarte av en datamaskin. Programmerere noen ganger refererer til ikke- uendelige løkker som uendelig . Et eksempel på en endelig 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 bestemmer seg for å kode programmet slik animasjonen stopper når objektet når et forhåndsdefinert punkt på skjermen .
Coding
følgende uttalelse illustrerer hvordan en utvikler oppretter en vanlig løkke i et program : en
loopCounter = 0; loopLimit = 100;
mens loopCounter er mindre enn loopLimitbegin ; ( gjøre noe ); ( legge en til loopCounter ) end ;
Denne koden sier , "Mens loopCounter ( 0 ) er mindre enn loopLimit ( 100 ) , gjøre noe . " Sløyfen skal gjenta 100 ganger . Å skape en uendelig loop, gjør en utvikler at verdien av loopCounter aldri når 100 . Han kunne gjøre det ved å utelate " ( legge en til loopCounter ) " statement eller ved å erstatte "mens loopCounter er mindre enn loopLimit " statement med "mens en er lik en . " Hvis en utvikler gjør at løkken aldri vil ende fordi man alltid vil tilsvare en.
Eksempler
Timers og klokker på enkelte websider noen ganger kjøre 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åking applikasjoner er avhengige av uendelig loop 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
Infinite løkker er ikke vanskelig å skape. Faktisk , noen utviklere lage dem utilsiktet. Når dette skjer, desktop og web - baserte applikasjoner kan gjentas kontinuerlig, forbruker store mengder systemressurser. Det følgende er et eksempel på en felles ikke- uendelig loop definert innenfor en JavaScript-funksjon : en
Var loopLimit = 100; for (var i = 0 ; i < loopLimit ; i + + ) { //gjør noe }
Denne sløyfen vil " gjøre noe" før den når grensen satt av variabelen , " loopLimit . " I dette eksempel, vil løkken løpe 100 ganger. Men hva skjer dersom verdien av loopLimit blir økes med en annen funksjon? Hvis det skjer , kan løkken aldri slutt. Utviklere bør være klar over dette felles programmeringsfeil . Andre utilsiktede løkker kan oppstå hvis en utbygger er avhengig av en ekstern hendelse, for eksempel et museklikk , for å stoppe sløyfen og at arrangementet ikke skal skje.