Ú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:

  1. "typ" označuje dátový typ objektov systému
  2. 'iter_var' označuje názov iteračnej premennej, ktorá ukladá každú hodnotu zbierky pri opakovaní iterácie slučkou.
  3. „Zbierka“ určuje kolekciu alebo pole, prostredníctvom ktorého chceme iterovať.
  4. '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

  1. For-Každá slučka v jave sa používa na iteráciu prostredníctvom prvkov poľa / zbierky v sekvencii.
  2. For-Každá slučka v jave používa iteračnú premennú na iteráciu cez kolekciu alebo pole prvkov.
  3. Úprava iteratívnej premennej nemení pôvodné pole / kolekciu, pretože je iba na čítanie.
  4. Typ v cykle for-each sa musí zhodovať s typom pôvodných prvkov poľa / kolekcie.
  5. Slučka Foreach nevyžaduje špecifikovanie počtu iterácií, pretože iteruje všetky prvky kolekcie.
  6. 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 -

  1. Tlač Array v Jave
  2. Slučky v programovaní Java
  3. Kým v slučke Java
  4. 3D polia v Jave
  5. Java Deployment Tools
  6. 3D polia v C ++
  7. Pre slučku v C
  8. Polia v programovaní Java

Kategórie: