Naudodami „for-each“ Java ciklą, galite greičiau ir saugiau pereiti per masyvus ir ko­lek­ci­jas, išvengti klaidų ir pagerinti kodo skai­to­mu­mą. Šiame pa­mo­ky­muo­se išsamiau pa­aiš­ki­na­me „for-each“ metodo struktūrą ir pri­va­lu­mus bei parodome, kaip naudoti šį ciklą savo kode.

Kam naudojama Java ciklo „for-each“ funkcija?

For-each ciklas nau­do­ja­mas daugelyje scenarijų, kai Java prog­ra­muo­to­jai turi dirbti su masyvais. Pa­vyz­džiui, dažnai jis nau­do­ja­mas norint išvesti arba ieškoti konkrečių masyvo elementų. For-each ciklas taip pat gali būti nau­do­ja­mas norint kartoti elementus sąraše, įgy­ven­din­ta­me kaip ArrayList. Kiek­vie­no­je ite­ra­ci­jo­je galite atlikti au­to­ma­ti­nius ma­ni­pu­lia­vi­mus su įprastais Java ope­ra­to­riais, ne­rei­ka­lau­da­mi rašyti atskiro teiginio kiek­vie­nam elementui.

Prie­šin­gai nei Java kalbos for ciklas, naudojant Java for-each ciklą nereikia at­si­žvelg­ti į masyvo indeksą ar dydį. Tai reiškia, kad iš­ven­gia­te rizikos, jog indeksas bus už ga­lio­jan­čio intervalo ribų. For-each ciklas viduje naudoja ite­ra­to­rių, kad vienas po kito iškviestų kiekvieną masyvo ar sąrašo elementą. Ite­ra­to­rius au­to­ma­tiš­kai per­skai­čiuo­ja masyvą arba sąrašą ir užbaigia ciklą, kai visi elementai yra per­žiū­rė­ti.

Tačiau jei jums reikia pasiekti indeksą, kad ga­lė­tu­mė­te redaguoti kitą arba ankstesnį elementą, gali būti pro­tin­giau naudoti for arba while ciklą.

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

Pag­rin­di­nė „for-each“ ciklo sintaksė Java kalboje atrodo taip:

for (type item : array | collection) {
// code block
}
Java
  • array/collection: Masyvo arba ko­lek­ci­jos pa­va­di­ni­mas
  • item: Kiek­vie­nas masyvo arba ko­lek­ci­jos elementas pri­ski­ria­mas šiai kin­ta­ma­jai
  • type: Masyvo arba ko­lek­ci­jos duomenų tipas

Ciklo viduje kodas vykdomas kiekvieną kartą.

Pa­vyz­džiai, kaip naudoti „for-each“ Java ciklą

Toliau pa­ro­dy­si­me, kaip naudoti „for-each“ metodą, naudojant ekrano išvestį ir arit­me­ti­nes ope­ra­ci­jas.

Elementų išvedimas į konsolę

Naudodami for-each ciklą, galite ekrane rodyti kiekvieną masyvo ar ko­lek­ci­jos elementą.

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

Taip pat galima ana­lo­giš­kai išvesti sąrašo elementus. Kilpos šaltinio kodas lieka nepakitęs.

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

Kiek­vie­nam vardui iš sąrašo sukuriama eilutė:

Sophie
Mia
Harrison
Elliot
Melissa
Java

Elementų masyve arba ko­lek­ci­jo­je esančių elementų sumos skai­čia­vi­mas

Java metodas „for-each“ pa­leng­vi­na arit­me­ti­nių operacijų, pvz., masyvo ar sąrašo elementų sudėties, atlikimą. Ope­ra­to­riai yra susieti su kin­ta­muo­ju, kuris veikia kaip kiekvieno elemento vietos laikiklis kilpos kodų bloke.

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

Masyvo skaičiai yra nuo­sek­liai pridedami prie kintamojo sum, kuris buvo anksčiau dekla­ruo­tas už kilpos ribų. Re­zul­ta­tas yra toks:

Result = 42
Java

22521435b1ac7a57243924ad4925f3b8

4e3f99762c00e5fd885e501519891687

e7dcb55429a1ad05a2d26d997b010049

03a997ae1adf78a8b72f58f1bb60ea2d

Go to Main Menu