For-loopen i Java: Räkneloop som upprepar koden ett specifikt antal gånger


Nyckelord: for-loopen, räkneloop, loopar, iterationssatser

Den här sidan kommer gå igenom for-loopen i Java som man använder när man vill att en operation ska upprepas ett specifikt antal gånger. Med andra ord, det är en räkneloop som upprepar loopen igenom kodavsnittet ett specifikt antal gånger. Vi kommer börja grundläggande med att gå igenom hur for-loopen fungerar och syntax för att skapa den, för att sedan fokusera på att lösa exempeluppgifter.

Vad är en for-loop?

I Java använder man for-loopen när man vill upprepa en operation ett specifikt antal gånger. För att inte behöva skriva din kod flera gånger om, kan vi istället upprepa en operation flera gånger. En for-loop beskrivs som en räkneloop. Det betyder att loopen upprepar en kodsekvens ett förbestämt antal gånger. For-loopen lämpar sig bäst när man vet antal iterationer som loopen kommer att behöva göra. Till skillnad från while-loopen och do-loopen som är att föredra när antal iterationer av loopen inte är fast bestämt.

Sammanfattat så är en for-loop:

  • En loop som upprepar en sekvens av operationer ett specifikt antal gånger.
  • Möjliggör generella och dynamiska program eftersom man kan återanvända kod.
  • Lämpar sig bäst när antal iterationer av loopen är fixerat.

Hur fungerar for-loopen i Java?

For-loopen fungerar på liknande sätt som while-loopen som vi såg på föregående sida. Om vi tar och illustrerar for-loopen med hjälp av ett flödesschema så får vi:

For-loop java
Figur 1: For-loopen i Java illustrerat med ett flödesschema

Det figur 1 ovan visar är helt enkelt att:

  1. For-loopen börjar med att kolla om ett villkor är uppfyllt, true. Ifall villkoret är uppfyllt så kommer loopen utföra kodblocket som hör till loopen.
  2. När alla operationer är utförda, ökar loopen initialvärdet, även kallat räknaren, och programmet går till början av for-loopen igen.
  3. Är villkoret fortfarande uppfyllt efter att initialvärdet har uppdaterats, så utför for-loopen kodblocket igen. Detta fortsätter sedan så länge villkoret är uppfyllt.
  4. När villkoret inte längre är inte uppfyllt, false, så går programmet vidare.

For-loopen upprepar en sekvens av operationer ett specifikt antal gånger.

Varför använda en for-loop i Java?

For-loopen i Java använder vi för att iterera över ett kodblock så länge villkoret är sant. Vi använder vanligtvis for-loopen när vi vet i förväg hur många gånger det ska upprepas. Till exempel genom en lista eller en array (som vi ska se mer om i senare kapitel) från början till slut. Till skillnad från while-loopen så har en for-loop sina gränser från början till slut. Även om du kan manipulera dessa gränser, är den allmänna implementeringen sådan att det maximala antalet loopar är förutbestämt.

Hur skapar man en for-loop i Java?

I Java deklarerar man forloopen med det reserverade ordet for följt av for-loopens “huvud” i parantes ( ) som består av tre komponenter som separeras med semikolon ;

  1. Initialvärde: anger vid vilket värde som loopen börjar räkna ifrån, vanligt förekommande är int i = 0.
  2. Villkor: avgör vilket logiskt villkor som ska vara uppfyllt för att exekvera loopen. Till exempel, utvärdera om en variabel är mindre än ett visst värde.
  3. Förändring: säger hur initialvärdet ska förändras, exempelvis, öka eller minska.

Avslutningsvis, inom måsvingarna, { }, specificerar man alla operationer som man vill exekvera (utföra) om och om igen, så länge som villkoret är true (uppfyllt)

Syntax: Deklarera en for-loop i Java

for (initialvärde; villkor; förändring) {

      // Operation / Flera operationer ... 
}

Exempel: For-loopen i Java

Låt oss ta ett par exempel på hur man kan använda en for-loop i Java.

Exempel 1: Skapa en for-loop i Java

Nedanstående exempel visar hur det är möjligt att använda for-loopen för att utföra en operation ett givet antal gånger.

  1. Först specificerar man ett initialvärde int = 0, det vill säga det startvärde som räknaren ska börja räkna från.
  2. Sedan anger man att loopen ska upprepas så länge som i < 5, det vill säga fem gånger i detta exempel.
  3. Slutligen specificerar man hur mycket som variabeln ska ändras efter varje loop, i detta fall öka med 1. Kom ihåg, att skriva i++ i Java är samma sak som i = i + 1

Om vi skriver in det i kodeditorn så får vi fölkande

for(int i = 0; i < 5; i++) {            

    System.out.println("Räknare: " + i); 
}

Det som händer i exemplet ovan är alltså att for-loopen upprepar operationen så länge som i är mindre än 5 och programmet skriver alltså ut:

Räknare: 0 
Räknare: 1 
Räknare: 2 
Räknare: 3 
Räknare: 4

Vill du testa koden ovan själv, klicka på knappen nedanför för att testa den online

Exempel 2: For-loop med en if-sats i Java

Vi tar ett liknande exempel, där vi nu kommer använda oss av if-satsen som vi har sett tidigare. Tänk dig att vi har ett flygplan med exakt 12 platser (det är ett litet flygplan). Flygbolaget vill markera vilka platser som är fönsterplatser och vilka som är i gången. Eftersom det är ett litet plan så sitter man antigen vid fönster eller i gången. Flygbolaget har då bestämt att alla ojämna nummer är fönsterplatser och alla jämna nummer är i gången. Numret på flygplansstolarna börjar på 1.

Eftersom vi här vet hur många platser det finns så kan vi med fördel använda oss av for-loopen.

public static void main(String[] args) {

    for (int i = 1; i <= 12; i++) {

        if (i % 2 != 0) {
            System.out.println("Plats " + i + " är en fönsterplats");
        } 

        else {
            System.out.println("Plats  " + i + " är plats vid mittgången");
        }
    }
}

I det här exemplet så börjar vi räkna från initialvärdet 1 och kommer att öka det värdet tills det är mindre eller lika med 12. Vi använder sedan if-satsen för att kontrollera ifall platsen är en plats på ett ojämnt nummer, det vill säga, numret är ej jämnt delbart med 2.

Vidare, i det här fallet får vi då resultatet:

Plats 1 är en fönsterplats
Plats 2 är plats vid mittgången
Plats 3 är en fönsterplats
Plats 4 är plats vid mittgången
Plats 5 är en fönsterplats
Plats 6 är plats vid mittgången
Plats 7 är en fönsterplats
Plats 8 är plats vid mittgången
Plats 9 är en fönsterplats
Plats 10 är plats vid mittgången
Plats 11 är en fönsterplats
Plats 12 är plats vid mittgången 

Exempel 3: For-loop som räknar nedåt

Låt oss ta ett sista exempel för for-loopen. I det här exemplet ska vi räkna nedåt från talet 25, det vill säga gå från ett större initialvärdet och nedåt. Vi kommer även att inte ta med varje steg på vägen utan ställer in att förändringen ska minska med minus 3 för varje steg. Om vi ställer upp det i kodeditorn så får vi

for (int i = 25; i > 0; i = i - 3 ){

       System.out.println("Nummer: " + i);
}

Det vi har ställt upp i for-loopen är helt enkelt.

  • Vårt initialvärde i är 25.
  • Vi ska exekvera for-loopen så länge i är större än 0.
  • Vi ska minska i med 3 för varje gång vi utför loopen.

Om vi sedan tar och skriver ut det i konsollen så får vi svaret

Nummer: 25
Nummer: 22
Nummer: 19
Nummer: 16
Nummer: 13
Nummer: 10
Nummer: 7
Nummer: 4
Nummer: 1

Vanliga misstag när man använder for-loopen i Java

Likande som While-loopen så finns det ett par vanliga misstag, Notera att det är ett par vanligare misstag, det finns självklart fler misstag man kan råka göra

  • Ha fel med 1 i antalet iterationer. Vanligtvis beror detta på ett missförhållande mellan for-loopens tillstånd och initialiseringen av de variabler som används i villkoret. Bra idé att vid längre loopar och/eller större program är att testa loopen i mindre skala innan
  • Semikolon i slutet av deklareringen (huvudet) av for-loopen. Detta separerar for-uttalandet från dess kod. Eftersom vi använder måsvingar för att gruppera kodblock, kommer koden bara att köras en gång.
  • Vanligt att vi använder for-loopen för att iterera igenom en array (Mer om array längre fram). I Java börjar array med index 0, så en array med 10 element kommer att ha elementen numrerade från 0 till 9. Ett vanligt misstag är att man inte är uppmärksam på att index börjar på 0, och inte 1, när man skapar sin for-loop.

Sammanfattning av for-loopen i Java

En for-loop i Java är en räkneloop som upprepar en kodsekvens ett förbestämt antal gånger. For-loopen lämpar sig bäst när man vet antal iterationer som loopen kommer att behöva göra. For-loopen skapas genom det reserverade ordet for följt av tre komponenter som skrivs inom parantes ( ) tillhörande for-loopen. De tre komponenterna är

  1. Initialvärde: det värde loopen ska börja räkna från.
  2. Villkor: avgör vilket logiskt villkor som ska vara uppfyllt för att exekvera loopen.
  3. Förändring: hur initialvärdet ska förändras när for-loopen utförs

Vanliga frågor och svar: For-loopen i Java

Kan jag använda for-loopen även om jag inte vet antal iterationer?

Ja det går bra. Java har en rad inbyggda funktioner som hjälper dig att räkna fram, till exempel, längden av en lista. Om du vill använda for-loopen för att gå igenom den listan så behöver alltså inte du veta hur lång den är utan Java hjälper dig att ta fram det och sen kan du använda det i din for-loops villkor.

Kan jag använda en for-loop inuti en annan for-loop?

Ja det går bra! Det kallas för nested for loop och är vanligt förekommande, framförallt då man arbetar med listor och arrays.

Kan man använda en for-loop inuti en if-sats?

Ja det går utmärkt. Så länge if-satsens villkor är uppfyllt så kommer sedan for-loopens villkor att utvärderas.

Vad tyckte du om sidan?

Lämna gärna feedback och hjälp oss göra sidan bättre

Feedback gör oss bättre!

Lämna gärna feedback om vad du tyckte om avsnittet!