1. Løkker i livet vårt
Svært ofte krever livene våre at vi utfører de samme handlingene mange ganger. Anta for eksempel at jeg trenger å skanne et dokument som består av mange sider. At vi gjentar samme prosedyre om og om igjen:
- Legg den første siden på skanneren
- Trykk på skanneknappen
- Legg neste side på skanneren
Dette er vanskelig å gjøre manuelt. Det ville vært fint om denne prosessen kunne automatiseres på en eller annen måte.
Eller tenk på et annet eksempel: la oss si at jeg vil merke alle uleste e-poster i innboksen min som spam. En gang i tiden måtte jeg velge hver e-post om gangen og merke den som spam.
Men programmerere er late, så de automatiserte denne prosessen for lenge siden: nå velger du bare en hvilken som helst liste over bokstaver og klikker på "merk som spam", og deretter kjører e-postklienten din gjennom listen og flytter hver e-post til spam-mappen.
Hva kan vi si her? Det er veldig praktisk når en datamaskin eller et program kan utføre hundrevis eller tusenvis av monotone operasjoner med ett klikk. Og nå vil du også lære hvordan du gjør dette.
2. while
løkke
If-else-setningen utvidet programmeringsevnene våre betydelig, noe som gjorde det mulig å skrive programmer som utfører forskjellige handlinger i forskjellige situasjoner. Men det er en ting til som vil gjøre programmene våre til en størrelsesorden kraftigere – loops .
Java har 4 typer løkker: while
, for
, for-each
og do-while
. Vi skal nå grave i den aller første av disse.
En while
løkke er veldig enkel. Den består av bare to deler: en tilstand og en løkkekropp . Løkkekroppen utføres om og om igjen så lenge tilstanden er true
. Generelt while
ser en løkke slik ut:
while (condition)
statement;
while
løkke med en enkelt uttalelse
while (condition)
{
block of statements
}
while
løkke med en blokk med utsagn
Det er veldig enkelt. Utsagnet eller blokken med setninger utføres om og om igjen så lenge løkkebetingelsen er lik .true
Slik fungerer det: Først sjekkes tilstanden . Hvis det er sant, blir loop-kroppen utført ( setningen eller blokken med setninger ). Deretter kontrolleres tilstanden igjen og løkkelegemet utføres på nytt. Og så videre til tilstanden blir falsk.
Hvis betingelsen alltid er sann , vil programmet aldri slutte å kjøre. Den vil bli permanent fast i løkken.
Hvis betingelsen er usann den aller første gangen den kontrolleres , vil ikke selve sløyfen bli utført en gang.
3. Eksempler på løkker
Her er noen praktiske eksempler på løkker i aksjon.
Kode | Forklaring |
---|---|
|
5 linjer vil vises på skjermen:
|
Kode | Forklaring |
---|---|
|
10 linjer vil vises på skjermen:
|
Kode | Forklaring |
---|---|
|
Programmet leser tall fra tastaturet så lenge tall legges inn. |
Kode | Forklaring |
---|---|
|
Programmet vil uendelig skrive ut bokstaven C på skjermen. |
Kode | Forklaring |
---|---|
|
Programmet vil lese linjer fra tastaturet
til |
I forrige eksempel equals()
brukes metoden for å sammenligne strenger. Hvis strengene er like, vil funksjonen returnere true
. Hvis strengene ikke er like, vil den returnere false
.
4. Løkke i en løkke
Etter hvert som du lærte om betingede setninger, så du at du kan bruke dem til å implementere kompleks logikk ved å kombinere flere betingede setninger. Med andre ord, ved å bruke et if
utsagn inne i et if
utsagn.
Du kan gjøre det samme med løkker. For å skrive en sløyfe i en sløyfe, må du skrive den andre sløyfen inne i kroppen til den første sløyfen. Det vil se omtrent slik ut:
while (condition for outer loop)
{
while (condition for inner loop)
{
block of statements
}
}
while
loop (med en blokk med utsagn ) inne i en annen while
loop
La oss se på tre oppgaver.
Oppgave 1 . La oss si at vi vil skrive et program som viser ordet Mom
på skjermen 4 ganger. En løkke er akkurat det vi trenger. Og koden vår vil se omtrent slik ut:
Kode | Forklaring |
---|---|
|
4 linjer vil vises på skjermen:
|
Oppgave 2 . Vi ønsker å skrive et program som viser 5 bokstaver A
s på en enkelt linje. For å gjøre dette trenger vi en løkke igjen. Slik vil koden se ut:
Kode | Forklaring |
---|---|
|
I stedet for println() vil vi bruke print() . Ellers ville hver bokstav A havne på en egen linje. Skjermutgangen vil være:
|
Oppgave 3 . Vi ønsker å vise et rektangel som består av bokstaven A
s. Rektangelet skal bestå av 4 rader ganger 5 kolonner. For å oppnå dette trenger vi nå en nestet løkke. Vi tar ganske enkelt vårt første eksempel (det der vi sender ut 4 linjer) og erstatter koden for å skrive ut én linje med koden fra det andre eksemplet.
Kode | Forklaring |
---|---|
|
Den ytre løkken er lilla. Den bruker n variabelen til å telle antall iterasjoner av løkken. Den indre løkken er grønn. Den bruker m variabelen til å telle antall loop-iterasjoner. Vi må eksplisitt flytte markøren til neste linje etter at den indre sløyfen er fullført. Ellers vil alle bokstavene som programmet skriver ut havne på én linje. Skjermutgangen vil være:
|
Den ytre og indre løkken må bruke forskjellige variabler for å telle antall løkkeiterasjoner. Vi måtte også legge til System.out.println()
kommandoen etter den indre løkken, siden den løkken viser bokstaven А
s på samme linje. Når bokstavene på en linje vises, må noen flytte markøren til en ny linje.
5. Sammenligning av loops Java vs Pascal
Mange av dere studerte Pascal på videregående. For å gjøre det lettere for deg å forstå materialet her, ta en titt på denne sammenligningen av while
løkker skrevet i Pascal og Java. Hvis du ikke kjenner Pascal, så bare hopp over denne delen.
Pascal | Java |
---|---|
|
|
|
|
|
|
|
|
|
|
GO TO FULL VERSION