Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Récursivité | Méthodes
Java Avancé
course content

Contenu du cours

Java Avancé

Java Avancé

1. Deep Java Structure
2. Méthodes
3. String Avancé
4. Classes
5. Classes Avancées

book
Récursivité

Comment casser facilement votre code ?

Pourquoi cela peut-il casser le code ? Parce que cela peut entraîner une récursion infinie, qui consommera sans fin la mémoire et réduira les performances de l'appareil. Alors, pourquoi avons-nous besoin de la récursion ? Dans certains cas, la récursion peut être utile, mais elle doit être utilisée avec précaution. Par exemple, la récursion peut remplacer une boucle while. Examinons un exemple d'utilisation de la récursion pour calculer la somme de tous les nombres jusqu'à un nombre passé en paramètre :

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; } }

La méthode calculateSum() s'appelle elle-même avec des valeurs réduites. Nous avons également un point de sortie pour cette récursivité lorsque la variable num devient zéro. Cette méthode calcule la somme de tous les nombres de 1 jusqu'au paramètre, dans notre cas 5. Observons l'organigramme qui illustre le fonctionnement de la récursivité à l'aide de cette méthode comme exemple :

L'exemple ci-dessus montre comment la méthode s'appelle elle-même avec des valeurs réduites, et lorsqu'elle atteint zéro, elle remonte en additionnant les valeurs. On peut également observer comment le corps du bloc if est exécuté, où l'on ajoute num au résultat de l'appel de la méthode avec une valeur réduite. Les valeurs intermédiaires après chaque appel de méthode sont indiquées près des flèches.

Peut-on éviter d'utiliser la récursivité ?

La récursivité peut également être remplacée par une boucle classique. Examinons un exemple où nous utilisons d'abord une méthode récursive, puis une boucle for pour effectuer la même opération :

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; } }

Ici, nous pouvons voir comment nous remplaçons notre méthode récursive par une boucle for classique, en utilisant la variable i pour incrémenter notre result de i à chaque itération jusqu'à atteindre le nombre spécifié num, qui est le paramètre de la méthode.

Conclusion

En conclusion, les méthodes récursives peuvent être utiles mais également risquées. La récursivité peut souvent être remplacée par des boucles et, bien qu'elle puisse simplifier certaines tâches, elle peut aussi entraîner des problèmes si elle n'est pas utilisée avec précaution. Si vous choisissez d'utiliser la récursivité, même avec de l'expérience, veillez à procéder avec prudence.

1. Qu'est-ce que la récursivité en Java ?

2. Lequel est préférable d'utiliser, la récursivité ou une boucle classique ?

question mark

Qu'est-ce que la récursivité en Java ?

Select the correct answer

question mark

Lequel est préférable d'utiliser, la récursivité ou une boucle classique ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 7

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

course content

Contenu du cours

Java Avancé

Java Avancé

1. Deep Java Structure
2. Méthodes
3. String Avancé
4. Classes
5. Classes Avancées

book
Récursivité

Comment casser facilement votre code ?

Pourquoi cela peut-il casser le code ? Parce que cela peut entraîner une récursion infinie, qui consommera sans fin la mémoire et réduira les performances de l'appareil. Alors, pourquoi avons-nous besoin de la récursion ? Dans certains cas, la récursion peut être utile, mais elle doit être utilisée avec précaution. Par exemple, la récursion peut remplacer une boucle while. Examinons un exemple d'utilisation de la récursion pour calculer la somme de tous les nombres jusqu'à un nombre passé en paramètre :

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; } }

La méthode calculateSum() s'appelle elle-même avec des valeurs réduites. Nous avons également un point de sortie pour cette récursivité lorsque la variable num devient zéro. Cette méthode calcule la somme de tous les nombres de 1 jusqu'au paramètre, dans notre cas 5. Observons l'organigramme qui illustre le fonctionnement de la récursivité à l'aide de cette méthode comme exemple :

L'exemple ci-dessus montre comment la méthode s'appelle elle-même avec des valeurs réduites, et lorsqu'elle atteint zéro, elle remonte en additionnant les valeurs. On peut également observer comment le corps du bloc if est exécuté, où l'on ajoute num au résultat de l'appel de la méthode avec une valeur réduite. Les valeurs intermédiaires après chaque appel de méthode sont indiquées près des flèches.

Peut-on éviter d'utiliser la récursivité ?

La récursivité peut également être remplacée par une boucle classique. Examinons un exemple où nous utilisons d'abord une méthode récursive, puis une boucle for pour effectuer la même opération :

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; } }

Ici, nous pouvons voir comment nous remplaçons notre méthode récursive par une boucle for classique, en utilisant la variable i pour incrémenter notre result de i à chaque itération jusqu'à atteindre le nombre spécifié num, qui est le paramètre de la méthode.

Conclusion

En conclusion, les méthodes récursives peuvent être utiles mais également risquées. La récursivité peut souvent être remplacée par des boucles et, bien qu'elle puisse simplifier certaines tâches, elle peut aussi entraîner des problèmes si elle n'est pas utilisée avec précaution. Si vous choisissez d'utiliser la récursivité, même avec de l'expérience, veillez à procéder avec prudence.

1. Qu'est-ce que la récursivité en Java ?

2. Lequel est préférable d'utiliser, la récursivité ou une boucle classique ?

question mark

Qu'est-ce que la récursivité en Java ?

Select the correct answer

question mark

Lequel est préférable d'utiliser, la récursivité ou une boucle classique ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 7
some-alt