# Kaip naudoti „for-each“ ciklus Java kalboje

Naudodami „for-each“ Java ciklą, galite greičiau ir saugiau pereiti per **masyvus ir kolekcijas**, išvengti klaidų ir pagerinti kodo skaitomumą. Šiame pamokymuose išsamiau paaiškiname „for-each“ metodo struktūrą ir privalumus bei parodome, kaip naudoti šį ciklą savo kode.

## Kam naudojama Java ciklo „for-each“ funkcija?

For-each ciklas naudojamas daugelyje scenarijų, kai Java programuotojai turi dirbti su masyvais. Pavyzdžiui, dažnai jis naudojamas norint išvesti arba ieškoti konkrečių masyvo elementų. For-each ciklas taip pat gali būti naudojamas norint kartoti elementus sąraše, įgyvendintame kaip ArrayList. Kiekvienoje iteracijoje galite atlikti **automatinius manipuliavimus** su įprastais Java operatoriais, nereikalaudami rašyti atskiro teiginio kiekvienam elementui.

Priešingai nei Java kalbos for ciklas, naudojant Java for-each ciklą **nereikia atsižvelgti į masyvo indeksą ar dydį**. Tai reiškia, kad išvengiate rizikos, jog indeksas bus už galiojančio intervalo ribų. For-each ciklas viduje naudoja iteratorių, kad vienas po kito iškviestų kiekvieną masyvo ar sąrašo elementą. Iteratorius automatiškai perskaičiuoja masyvą arba sąrašą ir užbaigia ciklą, kai visi elementai yra peržiūrėti.

Tačiau jei jums reikia pasiekti indeksą, kad galėtumėte redaguoti kitą arba ankstesnį elementą, gali būti protingiau naudoti **for** arba **while ciklą**.

## Kokia yra Java ciklo „for-each“ sintaksė?

Pagrindinė „for-each“ ciklo sintaksė Java kalboje atrodo taip:

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

- `array/collection`: Masyvo arba kolekcijos pavadinimas
- `item`: Kiekvienas masyvo arba kolekcijos elementas priskiriamas šiai kintamajai
- `type`: Masyvo arba kolekcijos duomenų tipas

Ciklo viduje kodas vykdomas kiekvieną kartą.

## Pavyzdžiai, kaip naudoti „for-each“ Java ciklą

Toliau parodysime, kaip naudoti „for-each“ metodą, naudojant **ekrano išvestį ir aritmetines operacijas**.

### Elementų išvedimas į konsolę

Naudodami for-each ciklą, galite **ekrane** rodyti kiekvieną masyvo ar kolekcijos elementą.

```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>Taip pat galima analogiškai išvesti sąrašo elementus. Kilpos šaltinio kodas lieka nepakitęs.

<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>Kiekvienam vardui iš sąrašo sukuriama eilutė:

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

</div>### Elementų masyve arba kolekcijoje esančių elementų sumos skaičiavimas

Java metodas „for-each“ palengvina aritmetinių operacijų, pvz., masyvo ar sąrašo elementų sudėties, atlikimą. Operatoriai yra susieti su kintamuoju, kuris veikia kaip **kiekvieno elemento vietos laikiklis** kilpos kodų bloke.

<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>Masyvo skaičiai yra nuosekliai pridedami prie kintamojo `sum`, kuris buvo anksčiau deklaruotas už kilpos ribų. Rezultatas yra toks:

<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/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/java-for-each-ciklas/](https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/java-for-each-ciklas/) for AI/LLM consumption.