Fonctionnement d'un programme, le mecanisme d'éxecution et affichage en Java
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
Code:
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;
}
} |
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:
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;
}
} |