Bonjour à tous;
Je cherche à comprendre le mecanisme de fonctionnement de ces 2 programmes java, entre les fonctions et leurs appels,
Voici le premier programme affiche H;H;H, je cherche une explication pourquoi il n'affiche pas HELLO
Le deuxième affiche des i=0, i=0 et i=0, je pensais qu'il doit afficher i=0, i=20 et i=30 j'aimerais avoir des explications sur le fonctionnement du programme.
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
18
19
20
21
22
23
24
25
26
27
28 public class HelloWorld{ public static void main(String[] args){ String maString ="H"; afficheMaString (maString); changeMaString (maString); afficheMaString (maString); String uneString = ajouteEOuL(changeMaString(changeMaString(maString))); afficheMaString (uneString); } public static void afficheMaString(String maString){ System.out.print(maString + ";"); } public static String changeMaString(String maString){ String uneString = ajouteEOuL (maString) + "0" ; return maString; } public static String ajouteEOuL(String maString){ if(maString.length() == 1){ maString += "E"; }else if(maString.length() == 2){ maString += "L"; }else{ maString = "HELLO"; } return maString; } }
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 public static void monSousProgramme(){ int i = 0; afficheI(i); changeI(i); afficheI(i); i = changeEtRetourne ( changeEtRetourne(changeEtRetourne(i)) ); afficheI(i); } public static void afficheI(int i){ System.out.print(" i = " + i + " ;"); } pu blic static int changeEtRetourne (int i){ int y = ajouteDixOuVingt(i) + 20 ; return i; } public static void changeI(int i){ i = ajouteDixO uVingt(i) + 20 ; } public static int ajouteDixOuVingt(int i){ if(i == 10){ i = i + 20; }else{ i = i + 10; } return i; } }
Partager