Bonjour,
j'ai ecrit une fonction recursive. Lorsqu'elle fonctionnera je compte l'utiliser pour generer un menu html dynamique.
Le probleme c'est qu'elle se comporte bizarrement. Elle descend bien dans les appels, elle revient meme au niveau 3 (cf code) mais elle ne revient pas aux etapes precedentes. En gros la deuxieme fois qu'elle arrive au bout du code l'execution s'arrete.
voici le code
et voici l'affichage de la source genere :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30public String displayMenu(Connection conn, Statement st, int parent, int level)throws IOException { String response = new String(""); int i=0; try{ String sql = new String ("SELECT * FROM REPORT WHERE REPORT_PARENT=" + parent + " AND REPORT_LEVEL=" + level +""); ResultSet rs = null; rs = st.executeQuery( sql ); while (rs.next()) { i++; String hs = new String(rs.getString(4)); if(hs.compareTo("Y")==0){ response = response.concat("level " + level + " " + rs.getString(2) + " > dans le if\n"); Menu m = new Menu(); int dad = rs.getInt(1); int dad_level = rs.getInt(6)+1; response = response.concat(m.displayMenu(conn, st,dad,dad_level)); } else { response = response.concat("level " + level + " " + rs.getString(2) + " > dans le else\n"); } } response=response.concat("level : " + level + ", " + i + " boucles."); rs.close(); } catch (SQLException E){ System.err.println(E.getMessage()); } return response; }
j'ai affiche plusieurs temoins de passage
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

 

 
		
		 
         
			
			





 Fonction recursive qui ne back track pas
 Fonction recursive qui ne back track pas
				 Répondre avec citation
  Répondre avec citation

 
   
Partager