Java voor lus
1. Overzicht
In dit artikel gaan we kijken naar een kernaspect van de Java-taal: het herhaaldelijk uitvoeren van een statement of een groep statements met behulp van een voor lus.
2. Simpel voor Lus
EEN voor loop is een controlestructuur waarmee we bepaalde bewerkingen kunnen herhalen door een lusteller te verhogen en te evalueren.
Vóór de eerste iteratie wordt de lusteller geïnitialiseerd, waarna de conditie-evaluatie wordt uitgevoerd, gevolgd door de stapdefinitie (meestal een eenvoudige verhoging).
De syntaxis van het voor lus is:
for (initialisatie; Booleaanse uitdrukking; stap) instructie;
Laten we het in een eenvoudig voorbeeld bekijken:
for (int i = 0; i <5; i ++) {System.out.println ("Simple for loop: i =" + i); }
De initialisatie, Booleaanse uitdrukking, en stap gebruikt in voor verklaringen zijn optioneel. Hier is een voorbeeld van een eindeloos for loop:
for (;;) {// Infinite for loop}
2.1. Gelabeld voor Loops
We kunnen ook hebben gelabeld voor lussen. Het is handig als we genest hebben voor lussen, zodat we dat kunnen breken/doorgaan met van aspecifiek voor lus:
aa: for (int i = 1; i <= 3; i ++) {if (i == 1) doorgaan; bb: for (int j = 1; j <= 3; j ++) {if (i == 2 && j == 2) {break aa; } System.out.println (i + "" + j); }}
3. Verbeterd voor Lus
Sinds Java 5 hebben we een tweede soort voor lus genaamd de verbeterd voor welke maakt het gemakkelijker om alle elementen in een array of verzameling te herhalen.
De syntaxis van het verbeterd voor lus is:
voor (Type item: items) verklaring;
Aangezien deze lus vereenvoudigd is in vergelijking met de standaard for-lus, hoeven we slechts twee dingen te declareren bij het initialiseren van een lus:
- De handle voor een element waarover we momenteel itereren
- De bronarray / verzameling die we aan het herhalen zijn
Daarom kunnen we zeggen dat: Voor elk element in artikelen, wijs het element toe aan de item variabele en voer de body van de lus uit.
Laten we eens kijken naar het eenvoudige voorbeeld:
int [] intArr = {0,1,2,3,4}; for (int num: intArr) {System.out.println ("Enhanced for-each loop: i =" + num); }
We kunnen het gebruiken om verschillende Java-datastructuren te herhalen:
Gegeven een Lijst lijst object - we kunnen het herhalen:
voor (String-item: lijst) {System.out.println (item); }
We kunnen op dezelfde manier herhalen over een Set instellen:
voor (String item: set) {System.out.println (item); }
En, gegeven een Kaart kaart we kunnen er ook over herhalen:
for (Entry entry: map.entrySet ()) {System.out.println ("Key:" + entry.getKey () + "-" + "Waarde:" + entry.getValue ()); }
3.1. Iterable.forEach ()
Sinds Java 8 kunnen we for-each-loops op een iets andere manier gebruiken. We hebben nu een toegewijde voor elke () methode in de Herhaalbaar interface die een lambda-expressie accepteert die een actie vertegenwoordigt die we willen uitvoeren.
Intern delegeert het de taak eenvoudig naar de standaardlus:
default void forEach (actie van de consument) {Objects.requireNonNull (actie); for (T t: this) {action.accept (t); }}
Laten we het voorbeeld eens bekijken:
Lijstnamen = nieuwe ArrayList (); names.add ("Larry"); names.add ("Steve"); names.add ("James"); names.add ("Conan"); names.add ("Ellen"); names.forEach (naam -> System.out.println (naam));
4. Conclusie
In deze korte tutorial hebben we Java's verkend voor lus.
Zoals altijd zijn voorbeelden te vinden op GitHub.