Inhoudsopgave:
- Benodigdheden
- Stap 1: Stel uw hoofdmethode in
- Stap 2: Maak uw recursieve methode-header
- Stap 3: Creëer je Kicker/base Case
- Stap 4: De recursieve stap
- Stap 5: Verkort het probleem
- Stap 6: Maak de matrix van gehele getallen
- Stap 7: Roep de methode aan met uw arrays
- Stap 8: Druk de resultaten af
- Stap 9: Gefeliciteerd
Video: Recursief een array optellen in Java - Ajarnpa
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Recursie is een zeer nuttige en tijdbesparende procedure die een probleem snel kan oplossen met heel weinig code. Recursie houdt in dat de methode die u maakt, zichzelf aanroept en het oorspronkelijke probleem verkort.
Voor dit voorbeeld zullen we een array van 10 gehele getallen optellen, maar de grootte kan elke lengte hebben.
Benodigdheden
U moet de basissyntaxis van Java kennen en uw IDE of een teksteditor hebben om uw code voor deze taak te schrijven.
Stap 1: Stel uw hoofdmethode in
Stel om te beginnen uw hoofdmethode in een nieuw gemaakte klasse in. Ik heb mijn klasse RecursiveSum genoemd. Hier maakt u de array van gehele getallen en roept u uw recursieve methode aan.
Stap 2: Maak uw recursieve methode-header
Maak buiten uw hoofdmethode de methodekop voor uw recursieve methode.
De methode is statisch, omdat er geen object voor nodig is om deze te gebruiken.
Het retourtype is int, omdat de array die we zullen gebruiken vol zal zijn op gehele getallen. Dit kan echter worden gewijzigd in het nummertype dat de array bevat.
Ik heb mijn methode recursiveSum genoemd, waarvoor twee parameters nodig zijn; een array van gehele getallen en de index die we aan de som zullen toevoegen. Ik heb deze parameters respectievelijk nummers en index genoemd.
Je zult nu fouten zien en dat is prima. Ze worden later gerepareerd.
Stap 3: Creëer je Kicker/base Case
Een recursieve methode heeft een kicker/base case nodig. Dit is de voorwaarde die ervoor zorgt dat uw methode zichzelf niet oneindig aanroept. Dit basisscenario kan worden beschouwd als het meest eenvoudige geval dat we zullen tegenkomen. In dit geval is het basisscenario wanneer we aan het einde van onze array zijn. Als de huidige index gelijk is aan de lengte van de array (min 1 omdat arrays beginnen te tellen vanaf 0 en niet 1), zijn we aan het einde en geven we dat element gewoon terug bij die index.
Stap 4: De recursieve stap
Zodra we ons basisscenario hebben, is de volgende stap onze recursieve stap. Dit is waar de magie gebeurt. We hebben het geval behandeld waarin onze index gelijk is aan het laatste element in onze array. Wat als we niet bij het laatste element in onze array zijn? Wat als we het eenvoudig konden vertellen om ons huidige element plus het volgende toe te voegen? Uiteindelijk zullen we het einde van onze reeks bereiken en zal ons basisscenario van invloed zijn.
Om dit te bereiken, retourneren we eenvoudig onze huidige index en "voegen de rest toe" van de array.
Stap 5: Verkort het probleem
Hoe kunnen we eenvoudig "de rest toevoegen"? We hebben al een methode die een bepaald element toevoegt; onze recursiveSum() methode! We kunnen het opnieuw noemen, maar veranderen welke index we optellen.
We passeren in dezelfde array die we verwerken, maar we passeren de volgende index van onze huidige index. We doen dit door er eenvoudig een toe te voegen aan onze huidige index, zoals weergegeven.
Stap 6: Maak de matrix van gehele getallen
Nu onze recursieve optelmethode voltooid is, kunnen we onze array maken die we zullen verwerken. Deze array staat in ons hoofdmethodeblok.
U kunt de grootte van de array zo lang maken als u wilt. Ik heb een paar verschillende arrays gemaakt met verschillende grootten en waarden om te laten zien dat het niet alleen op één formaat werkt.
Stap 7: Roep de methode aan met uw arrays
Nu kunt u uw recursieve methode aanroepen en deze arrays eraan doorgeven. Nu kunt u uw programma uitvoeren.
Stap 8: Druk de resultaten af
Er is niks gebeurd. Waarom? Recursieve som retourneert een geheel getal, maar we hebben niets met dit geheel getal gedaan. Het deed zijn werk, maar we kunnen het resultaat niet zien. Om het resultaat te zien, printen we het gewoon zo uit. Nadat u dit hebt uitgevoerd, zou u de resultaten voor elk van uw arrays moeten zien.
Stap 9: Gefeliciteerd
Je hebt een recursieve functie voltooid. Voel je vrij om de grootte van je arrays te wijzigen. Als je het uittest, zul je merken dat het crasht als je een lege array hebt. We hebben er geen rekening mee gehouden, maar dat is een geweldige manier om uw recursieve methode te verbeteren.