Úvod do slučky For-Every v Jave
Pre každú slučku bol zavedený jazyk Java od JDK 5. Jeho cieľom je postupná iterácia všetkých prvkov kolekcie alebo poľa. Nachádza sa aj v iných jazykoch, napríklad v jazyku C #, kde používa kľúčové slovo pre každý. Java však používa kľúčové slovo „for“ iba na implementáciu pre každú slučku na rozdiel od C #, ale jej syntax sa líši od konvencie pre slučku. Táto slučka pre každú slučku sa v Java tiež nazýva vylepšená slučka.
syntax
for(type iter_var : Collection) statement_block
Vysvetlenie každého z vyššie uvedených výrazov je takéto:
- "typ" označuje dátový typ objektov systému
- 'iter_var' označuje názov iteračnej premennej, ktorá ukladá každú hodnotu zbierky pri opakovaní iterácie slučkou.
- „Zbierka“ určuje kolekciu alebo pole, prostredníctvom ktorého chceme iterovať.
- 'Statement-block' je množina príkazov, ktoré chceme vykonať pre každú iteráciu slučky.
Je dôležité si uvedomiť, že slučka pre každú z nich pristupuje postupne k prvkom kolekcie / poľa, kde ukladá hodnotu každého prvku do iteračnej premennej. Nasleduje vývojový diagram pre každú slučku.
Ako ste si všimli, existujú určité jemné rozdiely medzi cyklom for loop a for-each loop. Pre slučku je potrebné vopred zadať počet iterácií. Toto však neplatí pre slučku for-each, pretože slučka iteruje od prvého prvku k poslednému prvku kolekcie / poľa a nie je potrebné špecifikovať počet iterácií.
Dôležitým bodom, ktorý treba mať na pamäti, je to, že typ špecifikovaný v cykle for-each sa musí zhodovať s typom prvkov v kolekcii, pretože inak dôjde k problémom s kompatibilitou.
Príklady
Pre slučku
Nájdime priemerný vek skupiny ľudí, ktorí používajú slučku:
kód
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
int sum = 0;
System.out.print("Ages of the group are : "); for (int i = 0; i < 10 ; i++)
(
System.out.print(ages(i)+" "); sum += ages(i);
)
System.out.println("\n Average age of the group = " + (sum/10));
)
)
Výkon:
Pre každú slučku
Ak chcete zistiť priemerný vek skupiny ľudí, ktorí používajú slučku pre každú z týchto skupín:
kód
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
int sum = 0;
System.out.print("Ages of the group are : "); for (int x : ages)
(
System.out.print(x+" "); sum += x;
)
System.out.println("\n Average age of the group = " + (sum/10));
)
)
Výkon:
Výstup je rovnaký pri použití oboch slučiek, ako je zrejmé z vyššie uvedených obrázkov.
Foreach loop pomocou Break Statement
Pomocou príkazu break je možné znížiť počet opakovaní cyklu for-each. Napríklad, ak chceme nájsť súčet iba prvých 5 prvkov, môžeme použiť príkaz break nasledovne:
kód
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
int ctr = 0, sum = 0;
System.out.print("Ages of the group are : "); for (int x : ages)
(
System.out.print(x+" ");
)
for (int x : ages)
(
if (ctr == 5) break; sum += x;
ctr += 1;
)
System.out.println("\nSum of age of first 5 people of the group = " + sum);
)
)
Výkon:
Vo vyššie uvedenej slučke for-each je x iteračná premenná, ktorá ukladá jeden prvok poľa na iteráciu, ktorý sa zmení v nasledujúcej iterácii. V prvej iterácii x uloží prvý prvok poľa a posledný prvok poľa do poslednej iterácie. Na rozdiel od slučky, kde pristupujeme k prvkom poľa pomocou indexu, pre každú slučku používa iteračná premenná na prístup k prvkom.
Pri každej slučke je potrebné postupovať opatrne, pretože iteračná premenná dočasne ukladá hodnotu prvku poľa, pretože je „iba na čítanie“ a zmena jeho hodnoty nemení pôvodné pole. To je v rozpore so slučkou, kde zmena prvku modifikuje pôvodné pole.
Pozrime sa na príklad, keď do každého prvku poľa pridáme 5. Rozdiel vo výstupe môžeme vidieť v nasledujúcom príklade kódu:
Pre slučku s iným stavom
kód
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
System.out.print("Elements of the array are : "); for (int i = 0; i < 10; i++)
(
System.out.print(ages(i)+" "); ages(i)+= 5;
)
System.out.print("\nNew elements of the array are : "); for (int i = 0; i < 10; i++)
(
System.out.print(ages(i)+" ");
)
)
)
Výkon:
Výstup pre cyklus zobrazujúci aktualizáciu pôvodného poľa
Foreach slučka s iným stavom
kód
public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
System.out.print("Elements of the array are : "); for (int x : ages)
(
System.out.print(x+" "); x += 5;
)
System.out.print("\nNew elements of the array are : "); for (int x : ages)
(
System.out.print(x+" ");
)
)
)
Výkon:
Výstup cyklu for-each, ktorý nevykazuje žiadnu aktualizáciu pôvodného poľa
Čo je potrebné pamätať o For-Každá slučka v jave
- For-Každá slučka v jave sa používa na iteráciu prostredníctvom prvkov poľa / zbierky v sekvencii.
- For-Každá slučka v jave používa iteračnú premennú na iteráciu cez kolekciu alebo pole prvkov.
- Úprava iteratívnej premennej nemení pôvodné pole / kolekciu, pretože je iba na čítanie.
- Typ v cykle for-each sa musí zhodovať s typom pôvodných prvkov poľa / kolekcie.
- Slučka Foreach nevyžaduje špecifikovanie počtu iterácií, pretože iteruje všetky prvky kolekcie.
- Je možné zastaviť pre každú smyčku pomocou príkazu break.
Odporúčané články
Toto je sprievodca pre slučku For-Every v jave. Tu diskutujeme o For-Každá slučka v jave s jej implementáciou kódu rôznymi spôsobmi, to je s break break a rôznymi podmienkami. Ďalšie informácie nájdete aj v nasledujúcich článkoch -
- Tlač Array v Jave
- Slučky v programovaní Java
- Kým v slučke Java
- 3D polia v Jave
- Java Deployment Tools
- 3D polia v C ++
- Pre slučku v C
- Polia v programovaní Java