Med Java-slingan for-each kan du gå igenom arrayer och samlingar snabbare och säkrare, undvika fel och förbättra kodens läsbarhet. I den här hand­led­ning­en förklarar vi struk­tu­ren och för­de­lar­na med metoden for-each mer de­tal­je­rat och visar hur du använder slingan i din kod.

Vad används Java-slingan for-each till?

For-each-slingan används i många scenarier där Java-ut­veck­la­re behöver arbeta med arrayer. Ett vanligt an­vänd­nings­om­rå­de är till exempel att mata ut eller söka efter specifika element i en array. For-each-slingan kan också användas för att iterera genom element i en lista som im­ple­men­te­rats som en ArrayList. I varje iteration kan du utföra au­to­ma­tis­ka ma­ni­pu­la­tio­ner med vanliga Java-ope­ra­to­rer utan att behöva skriva ett separat uttalande för varje element.

Till skillnad från for-slingan i Java behöver du inte ta hänsyn till index eller storlek på arrayen när du använder for-each-slingan i Java. Eftersom du inte behöver ta hänsyn till dessa aspekter undviker du risken att ett index hamnar utanför det giltiga in­ter­val­let. For-each-slingan använder internt en iterator för att hämta varje element i arrayen eller listan ett efter ett. Iteratorn räknar au­to­ma­tiskt igenom arrayen eller listan och avslutar slingan när alla element har ge­nom­gåtts.

Om du dock behöver komma åt indexet för att redigera nästa eller fö­re­gå­en­de element kan det vara mer lämpligt att använda for-slingan eller while-slingan.

Vad är syntaxen för Java-slingan for-each?

Den grund­läg­gan­de syntaxen för en for-each-slinga i Java ser ut så här:

for (type item : array | collection) {
// code block
}
Java
  • array/collection: Namnet på arrayen eller samlingen
  • item: Varje element i arrayen eller samlingen tilldelas denna variabel
  • type: Datatyp för arrayen eller samlingen

Inuti slingan exekveras kod­bloc­ket för varje iteration.

Exempel på hur man använder Java-slingan for-each

Nedan visar vi hur man använder metoden for-each med hjälp av skär­mut­da­ta och arit­me­tis­ka ope­ra­tio­ner.

Skriva ut element till konsolen

Med hjälp av for-each-slingan kan du visa varje element i en array eller samling på skärmen.

class Main {
    public static void main(String[] args) {
        // array
        String[] names = {"Sophie", "Mia", "Harrison", "Elliot", "Melissa"};
        // for each loop
        for (String name: names) {
            System.out.println(name);
        }
    }
}
In the console, we get the output:
```Java
Sophie
Mia
Harrison
Elliot
Melissa
Java

Det är också möjligt att mata ut elementen i en lista analogt. Källkoden för slingan förblir oför­änd­rad.

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        // list
        ArrayList<String> names = new ArrayList<String>();
        names.add( "Sophie" );
        names.add( "Mia" );
        names.add( "Harrison" );
        names.add( "Elliot" );
        names.add( "Melissa" );
        // for each loop
        for(String name: names){
            System.out.println(name);
        }
    }
}
Java

En sträng genereras för varje namn i listan:

Sophie
Mia
Harrison
Elliot
Melissa
Java

Beräkna summan av element i en matris eller samling

Java-metoden for-each gör det enkelt att utföra arit­me­tis­ka ope­ra­tio­ner, såsom att lägga till element i en array eller lista. Ope­ra­tö­rer är kopplade till variabeln som fungerar som plats­hål­la­re för varje element inom kod­bloc­ket i slingan.

class Main {
    public static void main(String[] args) {
        // array
        int[] numbers = {10, 34, 7, 19, -28};
        int sum = 0;
        // addition
        for (int number: numbers) {
            sum += number;
        }
        System.out.println("Result = " + sum);
    }
}
Java

Siffrorna i matrisen läggs till i sekvens till variabeln sum, som tidigare de­kla­re­ra­des utanför slingan. Ut­mat­ning­en är:

Result = 42
Java
Gå till huvudmeny