Inleiding tot For-Each-lus in Java
Voor elke lus is geïntroduceerd in Java vanaf JDK 5. Het doel is om opeenvolgend alle elementen van een Collectie of array te doorlopen. Het is er ook in andere talen zoals C #, waar het sleutelwoord voor elke wordt gebruikt. Java gebruikt het sleutelwoord 'for' echter alleen om voor elke lus te implementeren, in tegenstelling tot C #, maar de syntaxis verschilt van de conventionele voor een lus. Deze lus voor elke lus staat ook bekend als verbeterde lus in Java.
Syntaxis
for(type iter_var : Collection) statement_block
De uitleg voor elk van de hierboven gebruikte termen is als volgt:
- 'type' geeft het gegevenstype aan van de objecten van de
- 'iter_var' geeft de naam van de iteratievariabele aan die elke waarde van de verzameling opslaat terwijl we door de lus lopen.
- 'Verzameling' geeft de verzameling of matrix aan via welke we willen herhalen.
- 'statement-block' is de set statements die we voor elke iteratie van de lus willen uitvoeren.
Het is van essentieel belang op te merken dat de for-elke-lus achtereenvolgens toegang heeft tot de collectie / array-elementen, waar de waarde van elk element wordt opgeslagen in de iteratievariabele. Hierna volgt het stroomdiagram van de voor elke lus.
Zoals je hebt gemerkt, zijn er bepaalde subtiele verschillen tussen voor lus en voor elke lus. Voor lus moet het aantal iteraties vooraf worden opgegeven. Dit is echter niet het geval met de for-elke lus, omdat de lus van het eerste element naar het laatste element van de Verzameling / array terugkeert en het aantal iteraties niet hoeft te worden gespecificeerd.
Een belangrijk punt om in gedachten te houden is dat het type dat is opgegeven in de for-each-lus moet overeenkomen met het type elementen in de verzameling, omdat er anders compatibiliteitsproblemen zullen zijn.
Voorbeelden
For loop
Laten we de gemiddelde leeftijd bepalen van een groep mensen die voor lus gebruiken:
Code
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));
)
)
Output:
Voor elke lus
Om de gemiddelde leeftijd te bepalen van een groep mensen die een lus voor elke lus gebruiken:
Code
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));
)
)
Output:
De output is hetzelfde met beide lussen zoals te zien in de bovenstaande figuren.
Foreach lus met behulp van Break Statement
Het is mogelijk om het aantal iteraties van de for-elke lus te verminderen met behulp van een break-instructie. Als we bijvoorbeeld de som van alleen de eerste 5 elementen willen vinden, kunnen we de break-instructie als volgt gebruiken:
Code
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);
)
)
Output:
In de hierboven genoemde for-elke lus is x de iteratievariabele die per iteratie één element van de array opslaat die verandert in de volgende iteratie. In de eerste iteratie slaat x het eerste element van de array op en het laatste element van de array in de laatste iteratie. In tegenstelling tot lus, waarbij we toegang krijgen tot de elementen van de array met behulp van de index, gebruikt elke lus iteratievariabele voor toegang tot de elementen.
Voorzichtigheid is geboden bij het gebruik voor elke lus, omdat de iteratievariabele de waarde van het array-element tijdelijk opslaat omdat het "alleen-lezen" is en het wijzigen van de waarde de oorspronkelijke array niet wijzigt. Dit is in tegenspraak met de lus waarbij het wijzigen van een element de oorspronkelijke array wijzigt.
Laten we een voorbeeld bekijken waarin we 5 aan elk element van de array toevoegen. We kunnen het verschil in de uitvoer herkennen in de volgende voorbeeldcode:
Voor lus met verschillende staat
Code
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)+" ");
)
)
)
Output:
De uitvoer van for-lus met update van de oorspronkelijke array
Foreach lus met verschillende staat
Code
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+" ");
)
)
)
Output:
De uitvoer van de for-elke-lus toont geen update van de oorspronkelijke array
Dingen om te onthouden voor elke lus in Java
- For-Elke lus in Java wordt gebruikt om door een reeks / array-elementen in een reeks te bladeren.
- For-Elke lus in Java gebruikt de iteratievariabele om een verzameling of array van elementen te herhalen.
- Als de iteratievariabele wordt gewijzigd, wordt de oorspronkelijke array / verzameling niet gewijzigd, omdat deze alleen-lezen is.
- Het type in de for-each-lus moet overeenkomen met het type van de oorspronkelijke array / collectie-elementen.
- Foreach loop hoeft niet het aantal iteraties te specificeren dat het over alle elementen van de collectie doorloopt.
- Het is mogelijk om de for-elke lus te stoppen met behulp van een break-instructie.
Aanbevolen artikelen
Dit is een gids voor de For-Each-lus in Java. Hier bespreken we de For-Each-lus in Java met zijn code-implementatie op verschillende manieren, dat wil zeggen met de break-instructie en met de verschillende voorwaarden. U kunt ook de volgende artikelen bekijken voor meer informatie -
- Array afdrukken in Java
- Lussen in Java-programmering
- Terwijl Loop in Java
- 3D-arrays in Java
- Hulpmiddelen voor Java-implementatie
- 3D-arrays in C ++
- Voor lus in C
- Arrays in Java Programming