1. Sammenligning af loops: for
vswhile
En while
løkke kan bruges overalt, hvor en sætning eller gruppe af sætninger skal udføres flere gange. Men blandt alle de mulige scenarier er ét værd at fremhæve.
Vi taler om den situation, hvor programmøren (programmets skaber) på forhånd ved, hvor mange gange løkken skal udføres. Dette håndteres normalt ved at erklære en speciel tællervariabel og derefter øge (eller mindske) variablen med 1
hver iteration af løkken.
Alt ser ud til at fungere som det skal, men det er ikke særlig praktisk. Før løkken indstiller vi tællervariablens begyndelsesværdi. Så i tilstanden kontrollerer vi, om den allerede har nået den endelige værdi. Men vi ændrer normalt værdien i slutningen af løkkens krop.
Og hvad hvis løkkens krop er stor? Eller hvis vi har flere indlejrede løkker? Generelt er det i disse tilfælde ønskeligt at samle al denne information om tællervariabler ét sted. Og det er derfor, vi har loopet for
i Java. Det ser heller ikke særlig kompliceret ud:
for (statement 1; condition; statement 2)
{
block of statements
}
En while
loop har kun en betingelse i parentes, men en for
loop tilføjer to udsagn, adskilt af semikolon.
Virkeligheden er enklere, end den lyder: compileren konverterer en for
loop til en almindelig while
loop som denne:
statement 1;
while (condition)
{
block of statements
statement 2;
}
Eller endnu bedre, lad os demonstrere dette med et eksempel. De to kodestykker nedenfor er identiske.
Mulighed 1 | Mulighed 2 |
---|---|
|
|
Vi har lige samlet al den kode, der vedrører tællervariablen, på ét sted i
.
I en for
løkke udføres sætning 1 kun én gang, før selve løkken begynder. Dette kan tydeligt ses i det andet kodestykke
sætning 2 udføres det samme antal gange som løkkens krop, og hver gang den udføres efter at hele løkkens krop er udført
2. Hvor for
løkken bruges
Sløjfen for
er nok den mest brugte type løkke i Java. Det bruges overalt, for programmører er det bare klarere og mere bekvemt end en while
loop. Stort set enhver while
løkke kan konverteres til en for
løkke.
Eksempler:
mens loop | for sløjfe |
---|---|
|
|
|
|
|
|
|
|
|
|
Vær opmærksom på det sidste eksempel. Udtalelserne for at arbejde med loop-tælleren mangler. Der er ingen kontra og ingen udtalelse.
I en for
løkke lader Java dig udelade "erklæringen om at initialisere tælleren" og "erklæringen om at opdatere tælleren". Selv det udtryk, der definerer sløjfebetingelsen, kan udelades.
3. Nuancer ved at bruge for
løkken
En vigtig pointe om at bruge for
loops og break
og continue
statements.
En break
sætning i en for
løkke fungerer på samme måde som i en while
løkke - den afslutter løkken med det samme. En continue
sætning springer loop-kroppen over, men ikke statement 2
(hvilket ændrer loop-tælleren).
Lad os tage et nyt kig på, hvordan for
og while
sløjfer hænger sammen.
for (statement 1; condition; statement 2)
{
block of statements
}
statement 1;
while (condition)
{
block of statements
statement 2;
}
Hvis en continue
sætning udføres i en for
løkke , springes resten af blokken af sætninger over, men sætning 2 (den, der fungerer med for
løkkens tællervariabel) udføres stadig.
Lad os vende tilbage til vores eksempel med at springe tal over, der er delelige med 7.
Denne kode vil løkke for evigt | Denne kode vil fungere fint |
---|---|
|
|
Koden, der bruger while
løkken, vil ikke fungere - i vil aldrig være større end 7. Men koden med løkken for
vil fungere fint.
4. Sammenligning for loops: Java vs Pascal
Pascal har i øvrigt også en For
loop. Generelt har stort set alle programmeringssprog et. Men i Pascal er det super tydeligt. Eksempler:
Pascal | Java |
---|---|
|
|
|
|
|
|
GO TO FULL VERSION