# Kako uporabljati zanke for-each v Javi

Z zanko for-each Java lahko hitreje in varneje prehajate **med nizi in zbirkami**, se izognete napakam in izboljšate berljivost kode. V tem vodiču podrobneje 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 scenarijih, v katerih morajo razvijalci 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 ponavljanje elementov v seznamu, ki je implementiran kot ArrayList. V vsakem ponavljanju lahko izvajate **avtomatske manipulacije** s splošnimi Java operaterji, ne da bi morali za vsak element napisati ločeno izjavo.

V nasprotju z zanko for v Javi, ko uporabljate zanko for-each Java, vam **ni treba upoštevati indeksa ali velikosti niza**. Ker vam ni treba upoštevati 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 potrebujete 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:

```Java
for (type item : array | collection) {
// code block
}
```

- `array/collection`: Ime niza ali zbirke
- `item`: Vsak element niza ali zbirke je dodeljen tej spremenljivki
- `type`: Podatkovni 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 aritmetičnih operacij**.

### Izpisovanje elementov na konzolo

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

```Java
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
```

</div>Elementi seznama se lahko izpišejo tudi analogno. Izvorna koda zanke ostane nespremenjena.

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```Java
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
// list
ArrayList names = new ArrayList();
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);
}
}
}
```

</div>Za vsako ime iz seznama se generira niz:

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```Java
Sophie
Mia
Harrison
Elliot
Melissa
```

</div>### Izračunavanje vsote elementov v nizu ali zbirki

Java metoda for-each olajša izvajanje aritmetičnih operacij, kot je seštevanje elementov v nizu ali seznamu. Operacije so povezane s spremenljivko, ki služi kot **zaznamek za vsak element** znotraj kodnega bloka zanke.

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```Java
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);
}
}
```

</div>Številke v nizu se zaporedno dodajo spremenljivki `sum`, ki je bila prej deklarirana zunaj zanke. Izhod je:

<div class="prism-container position-relative my-4" data-ctype="commonmark_content">```Java
Result = 42
```


This is a markdown version of: [https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/java-for-each-zanka/](https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/java-for-each-zanka/) for AI/LLM consumption.