Z zanko for-each Java lahko hitreje in varneje prehajate med nizi in zbirkami, se izognete napakam in iz­bolj­ša­te ber­lji­vost kode. V tem vodiču po­drob­ne­je razložimo strukturo in prednosti metode for-each ter vam pokažemo, kako zanko uporabiti v svoji kodi.

Za kaj se uporablja Java zanka for-each?

Zanka for-each se uporablja v številnih sce­na­ri­jih, v katerih morajo raz­vi­jal­ci Java delati z nizi. Pogosta uporaba je na primer izpis ali iskanje določenih elementov niza. Zanka for-each se lahko prav tako uporabi za po­na­vlja­nje elementov v seznamu, ki je im­ple­men­ti­ran kot ArrayList. V vsakem po­na­vlja­nju lahko izvajate av­to­mat­ske ma­ni­pu­la­ci­je s splošnimi Java ope­ra­ter­ji, ne da bi morali za vsak element napisati ločeno izjavo.

V nasprotju z zanko for v Javi, ko upo­ra­blja­te zanko for-each Java, vam ni treba upo­šte­va­ti indeksa ali velikosti niza. Ker vam ni treba upo­šte­va­ti teh vidikov, se izognete tveganju, da bi indeks presegel veljavno območje. Zanka for-each notranje uporablja iterator, da pokliče vsak element niza ali seznama po enega. Iterator samodejno prešteje niz ali seznam in zaključi zanko, ko so vsi elementi prehodeni.

Če pa po­tre­bu­je­te dostop do indeksa, da bi uredili naslednji ali prejšnji element, je morda bolj smiselno uporabiti zanko for ali zanko while.

Kakšna je sintaksa zanke for-each v Javi?

Osnovna sintaksa zanke for-each v Javi je naslednja:

for (type item : array | collection) {
// code block
}
Java
  • array/collection: Ime niza ali zbirke
  • item: Vsak element niza ali zbirke je dodeljen tej spre­men­ljiv­ki
  • type: Po­dat­kov­ni tip niza ali zbirke

Znotraj zanke se blok kode izvede za vsako iteracijo.

Primeri uporabe zanke for-each v Javi

Spodaj bomo prikazali, kako uporabiti metodo for-each z uporabo izpisa na zaslonu in arit­me­tič­nih operacij.

Iz­pi­so­va­nje elementov na konzolo

Z uporabo zanke for-each lahko na zaslonu prikažete vsak element niza ali zbirke.

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

Elementi seznama se lahko izpišejo tudi analogno. Izvorna koda zanke ostane ne­spre­me­nje­na.

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

Za vsako ime iz seznama se generira niz:

Sophie
Mia
Harrison
Elliot
Melissa
Java

Iz­ra­ču­na­va­nje vsote elementov v nizu ali zbirki

Java metoda for-each olajša izvajanje arit­me­tič­nih operacij, kot je se­šte­va­nje elementov v nizu ali seznamu. Operacije so povezane s spre­men­ljiv­ko, ki služi kot zaznamek za vsak element znotraj kodnega bloka zanke.

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

Številke v nizu se zaporedno dodajo spre­men­ljiv­ki sum, ki je bila prej de­kla­ri­ra­na zunaj zanke. Izhod je:

Result = 42
Java

22521435b1ac7a57243924ad4925f3b8

4e3f99762c00e5fd885e501519891687

e7dcb55429a1ad05a2d26d997b010049

03a997ae1adf78a8b72f58f1bb60ea2d

9eba89144054bf4e2a41543b2ef04360

4619bc6e67f87b408673955f20571c47

Go to Main Menu