<java>incrementation
domxaline
-
domxaline -
domxaline -
Bonjour,
je suis débutant,le prg suivant marche bien,mais j'aimerai bien savoir,comment marche ce boucle
chaque passage de 0 à 8,si quelqu'un peut m'aider?je serai content
je suis débutant,le prg suivant marche bien,mais j'aimerai bien savoir,comment marche ce boucle
chaque passage de 0 à 8,si quelqu'un peut m'aider?je serai content
public class Icrem1 {
public static void main(String[] args)
{
int n,p;
n=p=0;
while(n<=8)n+=++p;
{
System.out.println("increment n= " + n);
System.out.println("increment p= " + p);
}
}
}
A voir également:
- <java>incrementation
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
12 réponses
I) les variables sont déclarées et initialisées à zéro
Petite remarque : la ligne suivante :
II) la boucle du programme :
ce que je préfère (personnellement) réécrire comme ceci :
d'abord on teste pour savoir si n est plus petit ou égal à 8. On sortira donc de la boucle lorsque n sera strictement plus grand que 8.
à chaque étape de la boucle on éxécute cette ligne :
n+=++p;
ceci signifie :
1) avant toute chose, incrémenter p.
2)ensuite, avec la nouvelle valeur de p, on exécute cette ligne :
n+=p, ce qui est comme n=n+p.
Ainsi, tu peux prendre un papier et un crayon (et une gomme) et marquer les valeurs de p et de n au fur et é mesure des itérations de la boucle. Tu verras ainsi comment les valeurs changent très facilement. Essaye et is-nous s'il y a qqchose que tu ne comprends pas.
III) Les valeurs finales de n et p après la boucle sont affichées grâce au bloc
Remarque : les accolades ici sont inutiles pour le programme. (éventuellement pour bien voir que ce bloc ne fait que de l'affichage, mais j'aurai plutôt tendance à dire que c'est source d'erreur, on pourrait croire que le programme boucle sur ce bloc alors que ce n'est pas le cas, le while ne va que sur l'instruction qui la suit.
int n,p;
Petite remarque : la ligne suivante :
n=p=0;est complètement inutile en java. En java les variables nombres sont toujours initialisés à 0 lorsqu'elles sont déclarées.
II) la boucle du programme :
while(n<=8)n+=++p;
ce que je préfère (personnellement) réécrire comme ceci :
while(n<=8) {
n+=++p;
}
d'abord on teste pour savoir si n est plus petit ou égal à 8. On sortira donc de la boucle lorsque n sera strictement plus grand que 8.
à chaque étape de la boucle on éxécute cette ligne :
n+=++p;
ceci signifie :
1) avant toute chose, incrémenter p.
2)ensuite, avec la nouvelle valeur de p, on exécute cette ligne :
n+=p, ce qui est comme n=n+p.
Ainsi, tu peux prendre un papier et un crayon (et une gomme) et marquer les valeurs de p et de n au fur et é mesure des itérations de la boucle. Tu verras ainsi comment les valeurs changent très facilement. Essaye et is-nous s'il y a qqchose que tu ne comprends pas.
III) Les valeurs finales de n et p après la boucle sont affichées grâce au bloc
{
System. ....
System....
}
Remarque : les accolades ici sont inutiles pour le programme. (éventuellement pour bien voir que ce bloc ne fait que de l'affichage, mais j'aurai plutôt tendance à dire que c'est source d'erreur, on pourrait croire que le programme boucle sur ce bloc alors que ce n'est pas le cas, le while ne va que sur l'instruction qui la suit.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'ai besoin encore votre aide
quand 0 est inferieur egal 8 n+= ++p; //aimerais bien savoir quel est valeur de n et p
quand 1 est inferieur egal 8 n+= ++p; //aimerais bien savoir quel est valeur de n et p
quand 2 est inférieur égal 8 n+= ++p; //aimerais bien savoir quel est valeur de n et p
quand 3 est inférieur égal 8 n+= ++p; //aimerais bien savoir quel est valeur de n et p
je suis un peu confondu aidez moi s'il vous plaît
quand 0 est inferieur egal 8 n+= ++p; //aimerais bien savoir quel est valeur de n et p
quand 1 est inferieur egal 8 n+= ++p; //aimerais bien savoir quel est valeur de n et p
quand 2 est inférieur égal 8 n+= ++p; //aimerais bien savoir quel est valeur de n et p
quand 3 est inférieur égal 8 n+= ++p; //aimerais bien savoir quel est valeur de n et p
je suis un peu confondu aidez moi s'il vous plaît
oui c'est bon, tu as compris, mais tu as oublié une chose : la boucle s'arrette avant d'arriver aussi loin.
Sinon pour le cas où c'est n+=p++
c'est la même chose, sauf un point important : d'abord on incrémente n de la valeur actuelle de p, et ensuite on incrémente p (l'ordre inverse de ce qu'on a fait avant).
C'est ce que signifie le fait de mettre " p++ " au lieu de "++p" dans le code.
Sinon pour le cas où c'est n+=p++
c'est la même chose, sauf un point important : d'abord on incrémente n de la valeur actuelle de p, et ensuite on incrémente p (l'ordre inverse de ce qu'on a fait avant).
C'est ce que signifie le fait de mettre " p++ " au lieu de "++p" dans le code.
je t'ai aidé en te montrant la méthode. Maintenant c'est à toi d'essayer de comprendre la méthode, apprendre à lire un code, à le décortiquer, et à essayer de le faire "fonctionner" sur une feuille de papier avec un crayon et une gomme.
si tu n'essayes rien, je laisse à quelqu'un d'autre le soin de t'aider.
si tu n'essayes rien, je laisse à quelqu'un d'autre le soin de t'aider.
int n,p,i;
n=p=0;
while(n<5)
{
n+=2;
System.out.println("increment n= " + n);
//System.out.println("increment p= " + p);
}
p++;
System.out.println("increment p= " + p);
//System.out.println("increment p= " + p);
resultat est
increment n= 2
increment n= 4
increment n= 6
increment p= 1
on va bien le passage de n 2 et 4
mais pour passage de p,il va au direct 1
pour voir le passage de p,que je dois faire?
Ok,
n va avoir la valeur 0 (avant la boucle), puis 2, puis 4, puis 6.
Et après p sera incrémenté de 1 (une seule fois), exactement comme tu as dit! Car l'instruction "p++" est hors de la boucle, et n'est donc exécutée qu'un seule fois
Ensuite je ne comprends pas trop ta question "pour voir le passage de p,que je dois faire?"
La suite du code c'est :
while(n<5)
{n+=2;p++};
est-ce que cette boucle va être exécutée ?
n=p=0; while(n<5) n+=2;p++;
n va avoir la valeur 0 (avant la boucle), puis 2, puis 4, puis 6.
Et après p sera incrémenté de 1 (une seule fois), exactement comme tu as dit! Car l'instruction "p++" est hors de la boucle, et n'est donc exécutée qu'un seule fois
Ensuite je ne comprends pas trop ta question "pour voir le passage de p,que je dois faire?"
La suite du code c'est :
while(n<5)
{n+=2;p++};
est-ce que cette boucle va être exécutée ?
Citation:
"Petite remarque : la ligne suivante :
n=p=0;est complètement inutile en java. En java les variables nombres sont toujours initialisés à 0 lorsqu'elles sont déclarées."
Que donne ceci à la compilation ?
int n; ------- -------- n++;javac n'aime pas:
variable n might not have been initialized
Alors?
Cordialement,
Dan
je t'accorde que c'est une bonne chose à faire, pour éviter ce warning et juste par habitude.
je n'aurai même pas dû le dire effectivement.
Pourquoi un warning ?
C'est une erreur et la compilation est stoppée, ce qui oblige le programmeur à initialiser sa donnée alors qu'avec un message warning (exemple: on veut utiliser une méthode "deprecated") la compile abouti et on peut executer.
Dans ce cas javac propose de lancer l'execution avec -Xlint:deprecation ce qui permettra d'abord de savoir quelle méthode est dépreciée et ensuite le n° de la ligne du code, ce que n'indique pas warning.
Mais je m'éloigne du sujet...
Cordialement,
Dan