For hver sløyfe inn Java

⚡ Smart oppsummering

For hver sløyfe inn Java er en forenklet form av for-løkken som brukes til å gå gjennom arrayer og lister uten en teller eller indeks. Denne ressursen forklarer for-each-syntaksen, sammenligner den med den tradisjonelle for-løkken og viser et komplett fungerende eksempel med forventet utdata.

  • 🔁 Formål: for-each-løkken itererer direkte over hvert element i en array eller liste, noe som reduserer kode.
  • 🧮 Ingen teller: I motsetning til en tradisjonell for-løkke trenger for-each ingen indeks, betingelse eller inkrement.
  • 🧩 Syntaks: Deklarer en midlertidig variabel hvis type samsvarer med samlingen, og deretter samlingen som skal itereres.
  • 🇧🇷 Sammenligning: Eksemplet viser samme utgang fra en tellerbasert løkke og en for-each-løkke.
  • ⚠️ Begrensning: For-each-løkken gir ingen indeks, så den kan ikke enkelt endre de underliggende elementene.

For hver sløyfe inn Java

Java For hver array

For-Each-løkken er en annen form for for-løkke som brukes til å gå gjennom arrayet. For-each-løkken reduserer koden betydelig, og det er ingen bruk av indeksen, eller rettere sagt telleren, i løkken.

Syntaks:

for (<DataType of array/List> <Temp variable name> : <Array/List to be iterated>) {
    System.out.println();
    // Any other operation can be done with this temp variable.
}

Loop/Iterer en matrise inn Java

La oss ta eksemplet ved å bruke en String-array som du vil iterere over uten å bruke noen tellere. Tenk på en String array arrData initialisert som følger:

String[] arrData = {"Alpha", "Beta", "Gamma", "Delta", "Sigma"};

Selv om du kanskje kjenner metoder som å finne størrelsen på matrise og deretter itererer gjennom hvert element i arrayet ved hjelp av den tradisjonelle for-løkken (teller, betingelse og inkrement), trenger vi en mer optimalisert tilnærming som ikke bruker noen slik teller.

Dette er den konvensjonelle tilnærmingen til "for"-løkken:

for (int i = 0; i < arrData.length; i++) {
    System.out.println(arrData[i]);
}

Du kan se bruken av telleren og deretter bruken av den som indeks for arrayet. Java gir en måte å bruke "for"-løkken som vil iterere gjennom hvert element i matrisen.

Her er koden for arrayet vi deklarerte tidligere:

for (String strTemp : arrData) {
    System.out.println(strTemp);
}

Du kan se forskjellen mellom løkkene. Koden er betydelig redusert. Det er heller ingen bruk av indeksen, eller rettere sagt telleren, i løkken. Sørg for at datatypen som er deklarert i for-each-løkken samsvarer med datatypen til ArrayList at du itererer.

For hver løkke Eksempel

Her har vi hele klassen som viser forklaringen ovenfor:

class UsingForEach {
  public static void main(String[] args) {
    String[] arrData = {"Alpha", "Beta", "Gamma", "Delta", "Sigma"};
    //The conventional approach of using the for loop
    System.out.println("Using conventional For Loop:");
    for(int i=0; i< arrData.length; i++){
      System.out.println(arrData[i]);
    }
    System.out.println("\nUsing Foreach loop:");
    //The optimized method of using the for loop - also called the foreach loop
    for (String strTemp : arrData){
      System.out.println(strTemp);
    }
  }
}

Iterer en matrise inn Java

Forventet utgang:

Using conventional For Loop:
Alpha
Beta
Gamma
Delta
Sigma

Using Foreach loop:
Alpha
Beta
Gamma
Delta
Sigma

Spørsmål og svar

Ja. AI-assistenter kan omstrukturere indeksbaserte løkker til for-each-løkker der indeksen ikke er nødvendig. Du bør fortsatt gjennomgå tilfeller som er avhengige av indeksen for posisjons- eller elementmodifisering.

AI-verktøy foreslår ofte for-each-løkken for lesbarhet når indeksen ikke brukes, mens keeping indekserte løkker der elementets posisjon eller modifikasjon har betydning. Valget avhenger av den spesifikke oppgaven.

En tradisjonell for-løkke bruker en teller og en indeks for å kontrollere iterasjon. For-each-løkken itererer hvert element direkte uten en teller, noe som forbedrer lesbarheten, men gir ingen indeks for elementtilgang.

Endring av løkkevariabelen oppdaterer ikke det underliggende array-elementet, fordi det inneholder en kopi av verdien. For å endre elementer på plass, bruk en tradisjonell for-løkke med en indeks.

Oppsummer dette innlegget med: