pour tous ceux qui débute en récursivité
pour tous ceux qui débute en récursivité
bonjour, je viens de debuter dans la recursivité et j'aimeré programmer une procedure qui retourne le nombre de lettres composant une chaine de caractere ! voila mon code mais ça marche pas merci d'eclairer ma lanterne à ce sujet !
MEthode Main :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 import java.util.Scanner; public class chaine1 { /** * @param args */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); String ch = ""; longueur l = new longueur(); ch = sc.nextLine(); l.longueur(ch); } }
Ma classe longueur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public class longueur { String ch =""; public int longueur(String ch){ this.ch = ch; if (ch == ""){ return 0; } else { return 1+longueur(reste(ch)); } } String reste(String ch){ this.ch = ch.substring(1); return ch; } }
Il ne faut pas utiliser une données membre de la classe ("ch") dans ta méthode récursive.
PS : pense à la balise "CODE".
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
excuse moi, j'ai pas l'impression d'avoir bien compris !
merci
un truc comme ca?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 String plop = "monBeauString"; for(int i=0;i<plop.length();i++){ System.out.println("mon char en place"+i+" est "+plop.charAt(i)); } System.out.println("taille total :"+plop.length());
oui je suis tout à fait d'accord avec toi, mais comme je fais de la récursivité j'ai pas le droit d'utiliser une boucle "for" .
je dois utiliser une procédure ou fonction que j'ai appelé "longueur" qui fais à chaque étape appel à elle même !
enfin c'est ce que j'ai lu dans mon cours ! lol
Un truc comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class longueur { public int longueur(String ch) { if (ch.equals( "" ) ) { return 0; } else { return 1 + longueur( substring( 1 ) ); } } }
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Partager