V tomto tutoriále sa pomocou príkladov dozvieme o cykle Java for-each a jeho rozdieloch s cyklom for.
V Jave sa slučka for-each používa na iteráciu prvkami polí a zbierok (napríklad ArrayList). Je tiež známy ako zosilnená slučka for.
pre každú slučku Sytnax
Syntax jazyka Java pre každú slučku je:
for(dataType item : array) (… )
Tu,
- pole - pole alebo zbierka
- položka - každá položka poľa / kolekcie je priradená k tejto premennej
- dataType - dátový typ poľa / kolekcie
Príklad 1: Tlač prvkov poľa
// print array elements class Main ( public static void main(String() args) ( // create an array int() numbers = (3, 9, 5, -5); // for each loop for (int number: numbers) ( System.out.println(number); ) ) )
Výkon
3 9 5 -5
Tu sme použili slučku for-each na tlač jednotlivých prvkov číselného poľa jeden po druhom.
- V prvej iterácii bude položka 3.
- V druhej iterácii bude položka 9.
- V tretej iterácii bude položka 5.
- Vo štvrtej iterácii bude položka -5.
Príklad 2: Súčet prvkov poľa
// Calculate the sum of all elements of an array class Main ( public static void main(String() args) ( // an array of numbers int() numbers = (3, 4, 5, -5, 0, 12); int sum = 0; // iterating through each element of the array for (int number: numbers) ( sum += number; ) System.out.println("Sum = " + sum); ) )
Výstup :
Súčet = 19
Vo vyššie uvedenom programe for each
vyzerá vykonávanie slučky takto:
Iterácia | Premenné |
---|---|
1 | číslo = 3 súčet = 0 + 3 = 3 |
2 | číslo = 4 súčet = 3 + 4 = 7 |
3 | číslo = 5 súčet = 7 + 5 = 12 |
4 | číslo = -5 súčet = 12 + (-5) = 7 |
5 | číslo = 0 súčet = 7 + 0 = 7 |
6 | číslo = 12 súčet = 7 + 12 = 19 |
Ako vidíme, pridali sme každý prvok poľa čísel do premennej súčet v každej iterácii slučky.
pre slučku Vs pre každú slučku
Pozrime sa, ako sa for-each
slučka líši od bežnej slučky Java for.
1. Pomocou slučky for
class Main ( public static void main(String() args) ( char() vowels = ('a', 'e', 'i', 'o', 'u'); // iterating through an array using a for loop for (int i = 0; i < vowels.length; ++ i) ( System.out.println(vowels(i)); ) ) )
Výstup :
aeiou
2. Použitie pre každú slučku
class Main ( public static void main(String() args) ( char() vowels = ('a', 'e', 'i', 'o', 'u'); // iterating through an array using the for-each loop for (char item: vowels) ( System.out.println(item); ) ) )
Výstup :
aeiou
Tu je výstup oboch programov rovnaký. Avšak, for-each slučky je jednoduchšie písať a rozumieť.
To je dôvod, prečo sa pri práci s poliami a kolekciami uprednostňuje slučka for-each pred slučkou for .