A voir également:
- Exercice de java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
5 réponses
On va essayer de voir ce qui se passe dans tes boucles pas à pas.
Un tableau serait idéal pour représenter tout ça mais je n'ai pas ce qu'il faut ici et je ne vais pas m'amuser à faire de l'ASCII-art... ^^'
Soit i un entier qui représente les itérations à partir de 1.
Soit r le résultat du calcul
Tu dois aussi savoir que la ligne n+= p++ est équivalente à la ligne n = n+p mais après avoir fait le calcul p se voit incrémenter de 1.
i n p r
1 0 0 0
2 0 1 1
3 1 2 3
4 3 3 6
5 6 4 10
à ce stade on ne vérifie plus la condition n <= 8 car n=10 > 8.
Maintenant il n'est pas logique que tu obtiennes 15 avec la condition n<=5.
En réutilisant les valeurs trouvées précédemment on devrait trouver 6, résultat que je peux confirmer avec un petit programme que j'ai écris vite fait et qui est équivalent au tient.
Si tu veux bien essayer de le compiler et de vérifier :
Avec ces résultats :
Tu devrais utiliser le débogueur pour voir d'où vient ton erreur.
n = p = 0 ; while (n<=8) n+= p++ ; ==> n=10 <== le résultat
Un tableau serait idéal pour représenter tout ça mais je n'ai pas ce qu'il faut ici et je ne vais pas m'amuser à faire de l'ASCII-art... ^^'
Soit i un entier qui représente les itérations à partir de 1.
Soit r le résultat du calcul
Tu dois aussi savoir que la ligne n+= p++ est équivalente à la ligne n = n+p mais après avoir fait le calcul p se voit incrémenter de 1.
i n p r
1 0 0 0
2 0 1 1
3 1 2 3
4 3 3 6
5 6 4 10
à ce stade on ne vérifie plus la condition n <= 8 car n=10 > 8.
Maintenant il n'est pas logique que tu obtiennes 15 avec la condition n<=5.
En réutilisant les valeurs trouvées précédemment on devrait trouver 6, résultat que je peux confirmer avec un petit programme que j'ai écris vite fait et qui est équivalent au tient.
Si tu veux bien essayer de le compiler et de vérifier :
import java.util.Scanner; public class Somme { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int val; int n,p; n = p = 0; affiche("Seuil de la boucle : "); val = sc.nextInt(); while (n <= val) { n+= p++; } affiche(String.valueOf(n)); } public static void affiche(String msg) { System.out.println(msg); } }
Avec ces résultats :
eminomeneko@Devstation:~$ java Somme Seuil de la boucle : 8 10 eminomeneko@Devstation:~$ java Somme Seuil de la boucle : 5 6
Tu devrais utiliser le débogueur pour voir d'où vient ton erreur.
beh , c'est pas de ma faut si vous avez des problèmes de vue !!!!!!!!!!!!!
mais j'ai fourni les réponses que j'arrive pas à comprendre :
bonjour ,
est ce que vous pouvez m'expliquer, comment on a obtenu ces résultats :
n = p = 0 ;
while (n<=8) n+= p++ ; ==> n=10 <== le résultat
n = p = 0 ;
while (n<=5) n+=p++; ==> n = 15 <==résultat
Merci
mais j'ai fourni les réponses que j'arrive pas à comprendre :
bonjour ,
est ce que vous pouvez m'expliquer, comment on a obtenu ces résultats :
n = p = 0 ;
while (n<=8) n+= p++ ; ==> n=10 <== le résultat
n = p = 0 ;
while (n<=5) n+=p++; ==> n = 15 <==résultat
Merci
Salut,
Avec le code que tu nous donnes le résultat est n = 10 à la sortie de la 1ère boucle et n = 6 à la sortie de la seconde.
Quelles sont les résultats que tu attendais ?
Peut-être ne nous donnes tu pas exactement le code que tu utilises pour tester et obtenir 10 et 15 ...
Cordialement,
Dan
--Plus on apprend... plus on se rend compte qu'on ne connaît pas grand-chose.
Avec le code que tu nous donnes le résultat est n = 10 à la sortie de la 1ère boucle et n = 6 à la sortie de la seconde.
Quelles sont les résultats que tu attendais ?
Peut-être ne nous donnes tu pas exactement le code que tu utilises pour tester et obtenir 10 et 15 ...
Cordialement,
Dan
--Plus on apprend... plus on se rend compte qu'on ne connaît pas grand-chose.
tout d'abord je tiens à vous remercier pour votre aide , en effet les deux résultats
sont correctes , comme je suis débutant j'ai eu du mal à comprendre la logique de ce genre de calcul , mais après quelques recherches sur internet , j'ai pu faire la différence entre ++p et p++ .
Cordialement.
sont correctes , comme je suis débutant j'ai eu du mal à comprendre la logique de ce genre de calcul , mais après quelques recherches sur internet , j'ai pu faire la différence entre ++p et p++ .
Cordialement.
Il faut que tu testes les deux et que tu regardes ce que ça donne pour comprendre.
Ou alors faire une recherche Google, c'est le genre de question qu'on pose tout le temps, que ce soit en C, C++, Java...
Ou alors faire une recherche Google, c'est le genre de question qu'on pose tout le temps, que ce soit en C, C++, Java...
int a,b; b=0; a = b++; System.out.println(a); // 0 System.out.println(b); // 1 b=0; a = ++b; System.out.println(a); // 1 System.out.println(b); // 1
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci encore une fois .