# Kā lietot for-each cilpas Java valodā

Ar for-each Java cilpu var ātrāk un drošāk pārskatīt **masīvus un kolekcijas**, izvairīties no kļūdām un uzlabot koda lasāmību. Šajā apmācībā mēs sīkāk izskaidrojam for-each metodes struktūru un priekšrocī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 scenārijos, kad Java izstrā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 **automātiskas manipulācijas** ar vispārējiem Java operatoriem, neizstrādājot atsevišķu izteikumu katram elementam.

Atšķirībā no for cilpas Java, kad izmantojat 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 izvairā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 automātiski skaita masīvu vai sarakstu un pārtrauc cilpu, kad visi elementi ir izietuši.

Ja tomēr jums ir nepieciešams piekļūt indeksam, lai rediģētu nākamo vai iepriekšējo elementu, varbūt ir lietderī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:

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

- `array/collection`: Masīva vai kolekcijas nosaukums
- `item`: Katrs masīva vai kolekcijas elements tiek piešķirts šai mainīgajai
- `type`: Masīva vai kolekcijas 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, izmantojot **ekrāna izvadi un aritmētiskās operācijas**.

### Elementu izvade uz konsoli

Izmantojot for-each cilpu, varat **ekrānā** parādīt katru masīva vai kolekcijas elementu.

```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>Ir iespējams arī analogiski izvadīt saraksta elementus. Cikla avota kods paliek nemainīgs.

<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>Katram vārdam no saraksta tiek ģenerēta virkne:

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

</div>### Elementu summas aprēķināšana masīvā vai kolekcijā

Java metode for-each atvieglo aritmētisko darbību veikšanu, piemēram, elementu pievienošanu masīvā vai sarakstā. Operatori ir saistīti ar mainīgo, kas kalpo kā **vietas turētājs katram elementam** cilpas koda blokā.

<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>Masīva skaitļi tiek secīgi pievienoti mainīgajam `sum`, kas iepriekš tika deklarēts ārpus cilpas. Rezultāts ir:

<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/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/java-for-each-cilpa/](https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/java-for-each-cilpa/) for AI/LLM consumption.