Ar for-each Java cilpu var ātrāk un drošāk pārskatīt masīvus un ko­lek­ci­jas, iz­vai­rī­ties no kļūdām un uzlabot koda lasāmību. Šajā apmācībā mēs sīkāk iz­skaid­ro­jam for-each metodes struktūru un priekš­ro­cī­bas, kā arī parādām, kā izmantot cilpu savā kodā.

Kādam nolūkam tiek izmantota Java cikla for-each?

For-each cilpa tiek izmantota daudzos sce­nā­ri­jos, kad Java iz­strā­dā­tā­jiem ir jāstrādā ar masīviem. Piemēram, bieži to izmanto, lai izvadītu vai meklētu konkrētus masīva elementus. For-each cilpu var izmantot arī, lai iterētu elementus sarakstā, kas īstenots kā ArrayList. Katrā iterācijā var veikt au­to­mā­tis­kas ma­ni­pu­lā­ci­jas ar vis­pā­rē­jiem Java ope­ra­to­riem, ne­iz­s­trā­dā­jot atsevišķu izteikumu katram elementam.

Atšķirībā no for cilpas Java, kad iz­man­to­jat for-each Java cilpu, jums nav jāņem vērā masīva indekss vai izmērs. Tā kā nav jāņem vērā šie aspekti, jūs iz­vai­rā­ties no riska, ka indekss varētu būt ārpus derīgā diapazona. For-each cilpa iekšēji izmanto iteratoru, lai izsauktu katru masīva vai saraksta elementu pa vienam. Iterators au­to­mā­tis­ki skaita masīvu vai sarakstu un pārtrauc cilpu, kad visi elementi ir izietuši.

Ja tomēr jums ir ne­pie­cie­šams piekļūt indeksam, lai rediģētu nākamo vai ie­priek­šē­jo elementu, varbūt ir liet­de­rī­gāk izmantot for ciklu vai while ciklu.

Kāda ir Java cikla for-each sintakse?

Java valodā for-each cikla pamata sintakse izskatās šādi:

for (type item : array | collection) {
// code block
}
Java
  • array/collection: Masīva vai ko­lek­ci­jas nosaukums
  • item: Katrs masīva vai ko­lek­ci­jas elements tiek piešķirts šai mai­nī­ga­jai
  • type: Masīva vai ko­lek­ci­jas datu tips

Cikla iekšienē koda bloks tiek izpildīts katrā iterācijā.

Piemēri, kā izmantot for-each Java cilpu

Zemāk parādīsim, kā izmantot for-each metodi, iz­man­to­jot ekrāna izvadi un arit­mē­tis­kās ope­rā­ci­jas.

Elementu izvade uz konsoli

Iz­man­to­jot for-each cilpu, varat ekrānā parādīt katru masīva vai ko­lek­ci­jas elementu.

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

Ir iespējams arī ana­lo­gis­ki izvadīt saraksta elementus. Cikla avota kods paliek nemainīgs.

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

Katram vārdam no saraksta tiek ģenerēta virkne:

Sophie
Mia
Harrison
Elliot
Melissa
Java

Elementu summas ap­rē­ķi­nā­ša­na masīvā vai kolekcijā

Java metode for-each atvieglo arit­mē­tis­ko darbību veikšanu, piemēram, elementu pie­vie­no­ša­nu masīvā vai sarakstā. Operatori ir saistīti ar mainīgo, kas kalpo kā vietas turētājs katram elementam cilpas koda blokā.

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

Masīva skaitļi tiek secīgi pie­vie­no­ti mai­nī­ga­jam sum, kas iepriekš tika deklarēts ārpus cilpas. Rezultāts ir:

Result = 42
Java

22521435b1ac7a57243924ad4925f3b8

4e3f99762c00e5fd885e501519891687

e7dcb55429a1ad05a2d26d997b010049

03a997ae1adf78a8b72f58f1bb60ea2d

8114a48b3d0cf8b4911ba3648d3112e2

1f594c892e18b0d8d2a96ba221bd3900

Go to Main Menu