1. Sammenligning av loops: for
vswhile
En while
loop kan brukes hvor som helst hvor en setning eller gruppe av setninger må utføres flere ganger. Men blant alle mulige scenarier er ett verdt å trekke frem.
Vi snakker om situasjonen når programmereren (programmets skaper) vet på forhånd hvor mange ganger loopen skal utføres. Dette håndteres vanligvis ved å deklarere en spesiell tellervariabel, og deretter øke (eller redusere) variabelen med 1
hver iterasjon av løkken.
Alt ser ut til å fungere som det skal, men det er ikke veldig praktisk. Før loopen setter vi tellervariabelens startverdi. Så i tilstanden sjekker vi om den allerede har nådd den endelige verdien. Men vi endrer vanligvis verdien helt på slutten av løkken.
Og hva om kroppen til løkken er stor? Eller hvis vi har flere nestede løkker? Generelt er det i disse tilfellene ønskelig å samle all denne informasjonen om tellervariabler på ett sted. Og det er derfor vi har loopen for
i Java. Det ser heller ikke veldig komplisert ut:
for (statement 1; condition; statement 2)
{
block of statements
}
En while
løkke har bare en betingelse i parentes, men en for
løkke legger til to utsagn, atskilt med semikolon.
Virkeligheten er enklere enn den høres ut: kompilatoren konverterer en for
sløyfe til en vanlig while
sløyfe som dette:
statement 1;
while (condition)
{
block of statements
statement 2;
}
Eller enda bedre, la oss demonstrere dette med et eksempel. De to kodebitene nedenfor er identiske.
valg 1 | Alternativ 2 |
---|---|
|
|
Vi har nettopp samlet all koden som gjelder tellervariabelen på ett sted i
.
I en for
loop utføres setning 1 bare én gang, før selve loopen begynner. Dette kan sees tydelig i den andre kodebiten
setning 2 utføres samme antall ganger som løkkens kropp, og hver gang den utføres etter at hele løkkens kropp er utført
2. Hvor for
løkken brukes
Lokken for
er sannsynligvis den mest brukte typen loop i Java. Det brukes overalt, for programmerere er det bare klarere og mer praktisk enn en while
loop. Praktisk talt enhver while
sløyfe kan konverteres til en for
sløyfe.
Eksempler:
mens loop | for løkke |
---|---|
|
|
|
|
|
|
|
|
|
|
Vær oppmerksom på det siste eksemplet. Uttalelsene for arbeid med looptelleren mangler. Det er ingen kontra og ingen uttalelse.
I en for
løkke lar Java deg utelate "utsagnet for å initialisere telleren" og "utsagnet for å oppdatere telleren". Selv uttrykket som definerer løkkebetingelsen kan utelates.
3. Nyanser ved bruk av for
løkken
Et viktig poeng om bruk av for
loops og break
og continue
uttalelser.
En break
setning i en for
løkke fungerer på samme måte som i en while
løkke - den avslutter løkken umiddelbart. En continue
setning hopper over løkketeksten, men ikke statement 2
(som endrer løkketelleren).
La oss ta en ny titt på hvordan for
og while
løkker er relatert.
for (statement 1; condition; statement 2)
{
block of statements
}
statement 1;
while (condition)
{
block of statements
statement 2;
}
Hvis en continue
setning utføres i en for
løkke , hoppes resten av blokken med setninger over, men setning 2 (den som fungerer med for
løkkens tellervariabel) kjøres fortsatt.
La oss gå tilbake til vårt eksempel med å hoppe over tall som er delbare med 7.
Denne koden vil løkke for alltid | Denne koden vil fungere fint |
---|---|
|
|
Koden som bruker while
løkken vil ikke fungere — i vil aldri være større enn 7. Men koden med løkken for
vil fungere fint.
4. Sammenligning for loops: Java vs Pascal
Pascal har forresten også en For
løkke. Generelt har i hovedsak alle programmeringsspråk en. Men i Pascal er det superklart. Eksempler:
Pascal | Java |
---|---|
|
|
|
|
|
|
GO TO FULL VERSION