Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Recursie | Methoden
Java Uitgebreid
course content

Cursusinhoud

Java Uitgebreid

Java Uitgebreid

1. Diepe Java-structuur
2. Methoden
3. String Geavanceerd
4. Klassen
5. Geavanceerde Klassen

book
Recursie

Hoe kun je eenvoudig je code laten falen?

Waarom kan dit de code laten falen? Omdat het kan leiden tot oneindige recursie, wat eindeloos geheugen zal verbruiken en de prestaties van het apparaat zal verminderen. Waarom hebben we recursie dan überhaupt nodig? In sommige gevallen kan recursie nuttig zijn, maar het moet zorgvuldig worden toegepast. Recursie kan bijvoorbeeld een while-lus vervangen. Laten we een voorbeeld bekijken van het gebruik van recursie om de som te berekenen van alle getallen tot aan een als parameter doorgegeven getal:

Main.java

Main.java

copy
1234567891011121314151617181920
package com.example; public class Main { // main method to run the application public static void main(String[] args) { // do not modify the code below System.out.println(calculateSum(5)); } // method to calculate the sum of numbers from 1 to num using recursion static int calculateSum(int num) { // if num is greater than 0, recursively calculate the sum if (num > 0) { num = num + calculateSum(num - 1); } else { return 0; } return num; } }

De methode calculateSum() roept zichzelf aan met verlaagde waarden. Er is ook een eindpunt voor deze recursie wanneer de variabele num nul wordt. Deze methode berekent de som van alle getallen van 1 tot aan de parameter, in ons geval 5. Bekijk het stroomschema dat laat zien hoe recursie werkt aan de hand van deze methode als voorbeeld:

Het bovenstaande voorbeeld toont hoe de methode zichzelf aanroept met verlaagde waarden, en wanneer deze nul bereikt, keert het terug omhoog door de waarden op te tellen. We kunnen ook zien hoe het lichaam van het if-blok wordt uitgevoerd, waarbij we num optellen bij het resultaat van de methode-aanroep met een verlaagde waarde. De tussenliggende waarden na elke methode-aanroep worden aangegeven bij de pijlen.

Kunnen we recursie vermijden?

Recursie kan ook worden vervangen door een reguliere lus. Bekijk een voorbeeld waarbij we eerst een recursieve methode gebruiken en daarna een for-lus om dezelfde bewerking uit te voeren:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930313233
package com.example; public class Main { // main method to run the application public static void main(String[] args) { // do not modify the code below int num = 5; // printing the result of the recursive sum calculation System.out.println("Result using recursion: " + calculateSum(num)); int result = 0; // calculating the sum using a for-loop for (int i = 1; i <= num; i++) { result = result + i; } // printing the result of the sum calculation using the for-loop System.out.println("Result using for-loop: " + result); } // method to calculate the sum of numbers from 1 to num using recursion static int calculateSum(int num) { // if num is greater than 0, recursively calculate the sum if (num > 0) { num = num + calculateSum(num - 1); } else { return 0; } return num; } }

Hier zien we hoe we onze recursieve methode vervangen door een reguliere for-lus, waarbij we de variabele i gebruiken om ons result telkens met i te verhogen totdat het het opgegeven getal num bereikt, dat als parameter aan de methode wordt meegegeven.

Conclusie

Samenvattend kunnen recursieve methoden nuttig zijn, maar ook risicovol. Recursie kan vaak worden vervangen door lussen, en hoewel het bepaalde taken kan vereenvoudigen, kan het ook problemen veroorzaken als het niet zorgvuldig wordt gebruikt. Als u ervoor kiest om recursie te gebruiken, zelfs met ervaring, wees dan altijd voorzichtig.

1. Wat is recursie in Java?

2. Wat is beter om te gebruiken, recursie of een reguliere lus?

question mark

Wat is recursie in Java?

Select the correct answer

question mark

Wat is beter om te gebruiken, recursie of een reguliere lus?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 7

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

course content

Cursusinhoud

Java Uitgebreid

Java Uitgebreid

1. Diepe Java-structuur
2. Methoden
3. String Geavanceerd
4. Klassen
5. Geavanceerde Klassen

book
Recursie

Hoe kun je eenvoudig je code laten falen?

Waarom kan dit de code laten falen? Omdat het kan leiden tot oneindige recursie, wat eindeloos geheugen zal verbruiken en de prestaties van het apparaat zal verminderen. Waarom hebben we recursie dan überhaupt nodig? In sommige gevallen kan recursie nuttig zijn, maar het moet zorgvuldig worden toegepast. Recursie kan bijvoorbeeld een while-lus vervangen. Laten we een voorbeeld bekijken van het gebruik van recursie om de som te berekenen van alle getallen tot aan een als parameter doorgegeven getal:

Main.java

Main.java

copy
1234567891011121314151617181920
package com.example; public class Main { // main method to run the application public static void main(String[] args) { // do not modify the code below System.out.println(calculateSum(5)); } // method to calculate the sum of numbers from 1 to num using recursion static int calculateSum(int num) { // if num is greater than 0, recursively calculate the sum if (num > 0) { num = num + calculateSum(num - 1); } else { return 0; } return num; } }

De methode calculateSum() roept zichzelf aan met verlaagde waarden. Er is ook een eindpunt voor deze recursie wanneer de variabele num nul wordt. Deze methode berekent de som van alle getallen van 1 tot aan de parameter, in ons geval 5. Bekijk het stroomschema dat laat zien hoe recursie werkt aan de hand van deze methode als voorbeeld:

Het bovenstaande voorbeeld toont hoe de methode zichzelf aanroept met verlaagde waarden, en wanneer deze nul bereikt, keert het terug omhoog door de waarden op te tellen. We kunnen ook zien hoe het lichaam van het if-blok wordt uitgevoerd, waarbij we num optellen bij het resultaat van de methode-aanroep met een verlaagde waarde. De tussenliggende waarden na elke methode-aanroep worden aangegeven bij de pijlen.

Kunnen we recursie vermijden?

Recursie kan ook worden vervangen door een reguliere lus. Bekijk een voorbeeld waarbij we eerst een recursieve methode gebruiken en daarna een for-lus om dezelfde bewerking uit te voeren:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930313233
package com.example; public class Main { // main method to run the application public static void main(String[] args) { // do not modify the code below int num = 5; // printing the result of the recursive sum calculation System.out.println("Result using recursion: " + calculateSum(num)); int result = 0; // calculating the sum using a for-loop for (int i = 1; i <= num; i++) { result = result + i; } // printing the result of the sum calculation using the for-loop System.out.println("Result using for-loop: " + result); } // method to calculate the sum of numbers from 1 to num using recursion static int calculateSum(int num) { // if num is greater than 0, recursively calculate the sum if (num > 0) { num = num + calculateSum(num - 1); } else { return 0; } return num; } }

Hier zien we hoe we onze recursieve methode vervangen door een reguliere for-lus, waarbij we de variabele i gebruiken om ons result telkens met i te verhogen totdat het het opgegeven getal num bereikt, dat als parameter aan de methode wordt meegegeven.

Conclusie

Samenvattend kunnen recursieve methoden nuttig zijn, maar ook risicovol. Recursie kan vaak worden vervangen door lussen, en hoewel het bepaalde taken kan vereenvoudigen, kan het ook problemen veroorzaken als het niet zorgvuldig wordt gebruikt. Als u ervoor kiest om recursie te gebruiken, zelfs met ervaring, wees dan altijd voorzichtig.

1. Wat is recursie in Java?

2. Wat is beter om te gebruiken, recursie of een reguliere lus?

question mark

Wat is recursie in Java?

Select the correct answer

question mark

Wat is beter om te gebruiken, recursie of een reguliere lus?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 7
some-alt