Programmation java
Fermé
V4
-
27 oct. 2009 à 18:51
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 - 28 oct. 2009 à 09:39
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 - 28 oct. 2009 à 09:39
A voir également:
- Programmation java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Application de programmation - Guide
7 réponses
Ton_Ami
Messages postés
135
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
16 mars 2010
28
27 oct. 2009 à 22:18
27 oct. 2009 à 22:18
Bonjour,
quand tu le compiles il te dit quoi? que ça marche? c'est en le lançant que tu peux voir si ça fonctionne ;)
Sinon pour ta condition de boucle, tu considères que tant que la moyenne est entre 0 et 6 tu continues? pourquoi cette condition?
Je ne comprends pas trop l'utilité de la boucle, à moins qu'il faille calculer plusieurs fois de suite une moyenne de 4 notes. Mais alors il n'y a que pour le calcul de la dernière moyenne que sa valeur est affichée.
Donc soit tu tires la boucle, et le programme permet de calculer la moyenne de 4 notes et l'affiche.
Soit, on laisse la boucle et on peut calculer plusieurs fois de suite une moyenne de 4 notes (dans ce cas, il faut changer la condition de la boucle car une moyenne peut être entre 0 et 6 sans pour autant nécessiter une nouvelle itération de la boucle, et il faut également mettre le println dans la boucle pour l'imprimer à chaque fois qu'une moyenne est calculée).
Soit on garde la boucle, on calcule que une seule fois une moyenne de 4 notes, et dans ce cas, on fait une boucle qui fait 4 itérations, et on met que un scanner de Double dans la boucle et on met une phrase plus générale genre:
double note;
for (int i = 0; i<4; i++)
{
System.out.println("Valeur de la " + i + "e note: ");
note += readline.nextDouble();
}
double moyenne = note/4.0;
System.out.println("moyenne : " + moyenne);
C'est peut-être pas tout à fait correct mais c'est une idée en gros
J'espère avoir pu t'aider. Si tu as d'autres questions n'hésite pas!
quand tu le compiles il te dit quoi? que ça marche? c'est en le lançant que tu peux voir si ça fonctionne ;)
Sinon pour ta condition de boucle, tu considères que tant que la moyenne est entre 0 et 6 tu continues? pourquoi cette condition?
Je ne comprends pas trop l'utilité de la boucle, à moins qu'il faille calculer plusieurs fois de suite une moyenne de 4 notes. Mais alors il n'y a que pour le calcul de la dernière moyenne que sa valeur est affichée.
Donc soit tu tires la boucle, et le programme permet de calculer la moyenne de 4 notes et l'affiche.
Soit, on laisse la boucle et on peut calculer plusieurs fois de suite une moyenne de 4 notes (dans ce cas, il faut changer la condition de la boucle car une moyenne peut être entre 0 et 6 sans pour autant nécessiter une nouvelle itération de la boucle, et il faut également mettre le println dans la boucle pour l'imprimer à chaque fois qu'une moyenne est calculée).
Soit on garde la boucle, on calcule que une seule fois une moyenne de 4 notes, et dans ce cas, on fait une boucle qui fait 4 itérations, et on met que un scanner de Double dans la boucle et on met une phrase plus générale genre:
double note;
for (int i = 0; i<4; i++)
{
System.out.println("Valeur de la " + i + "e note: ");
note += readline.nextDouble();
}
double moyenne = note/4.0;
System.out.println("moyenne : " + moyenne);
C'est peut-être pas tout à fait correct mais c'est une idée en gros
J'espère avoir pu t'aider. Si tu as d'autres questions n'hésite pas!
je comprend pas le :
note += readline.nextDouble();
ca veut dire quoi "+=" ??
merci
note += readline.nextDouble();
ca veut dire quoi "+=" ??
merci
donc dans ce cas la ça voudrait dire
note = note + readline.nextDouble()
pourquoi tu additionne le scanner ? j'arrive pas à comprendre dsl..
note = note + readline.nextDouble()
pourquoi tu additionne le scanner ? j'arrive pas à comprendre dsl..
Ton_Ami
Messages postés
135
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
16 mars 2010
28
27 oct. 2009 à 23:24
27 oct. 2009 à 23:24
J'additionne la valeur entrée par l'utilisateur.
Donc par exemple la première fois l'utilisateur entre 5 , puis 7, puis 1, puis 6.
Ce que fait cette ligne c'est qu'il fait: note = note + 5; c'est à dire: 0+5 donc il ya 5 dans la variable note, ensuite on a le 7 qui est tapé donc: note = note +7; c'est à dire 5+7 il y a donc 12 dans la variable, et ainsi de suite jusqu'à ce qu'on a la somme de chaque note entrée. après on peut diviser par 4 pour avoir la moyenne.
Je ne sais pas trop comment expliquer autrement. Tu as compris ou pas? :s
Donc par exemple la première fois l'utilisateur entre 5 , puis 7, puis 1, puis 6.
Ce que fait cette ligne c'est qu'il fait: note = note + 5; c'est à dire: 0+5 donc il ya 5 dans la variable note, ensuite on a le 7 qui est tapé donc: note = note +7; c'est à dire 5+7 il y a donc 12 dans la variable, et ainsi de suite jusqu'à ce qu'on a la somme de chaque note entrée. après on peut diviser par 4 pour avoir la moyenne.
Je ne sais pas trop comment expliquer autrement. Tu as compris ou pas? :s
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
28 oct. 2009 à 03:42
28 oct. 2009 à 03:42
Salut,
readline return un String.
Il faut remplacer readline.nextDouble(); par:
String entree = (readline.next());
double note1 = Double.parseDouble(entree);
.....
....
Mais je ne comprend pas ce que tu veux faire avec
do
{
.....
}while (moyenne < 6 && moyenne >= 0);
Ce ne serait pas plutôt la note entrée que tu voudrais dans les limites 0 à 5 ? (ou 0 à 20 ou ...)
Cordialement,
Dan
readline return un String.
Il faut remplacer readline.nextDouble(); par:
String entree = (readline.next());
double note1 = Double.parseDouble(entree);
.....
....
Mais je ne comprend pas ce que tu veux faire avec
do
{
.....
}while (moyenne < 6 && moyenne >= 0);
Ce ne serait pas plutôt la note entrée que tu voudrais dans les limites 0 à 5 ? (ou 0 à 20 ou ...)
Cordialement,
Dan
scriptiz
Messages postés
1424
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 septembre 2023
425
28 oct. 2009 à 09:39
28 oct. 2009 à 09:39
danimo, la méthode Scanner.nextDouble() retourne un double contrairement à ce que tu pourrais penser.
La preuve dans la doc :
https://docs.oracle.com/javase/6/docs/api/java/util/Scanner.html
Il faut cependant faire attention aux exceptions pouvant être lancées par cette méthode dans le cadre d'un programme destiné à la production :
Throws:
InputMismatchException - if the next token does not match the Float regular expression, or is out of range
NoSuchElementException - if the input is exhausted
IllegalStateException - if this scanner is closed
La preuve dans la doc :
double nextDouble() Scans the next token of the input as a double.
https://docs.oracle.com/javase/6/docs/api/java/util/Scanner.html
Il faut cependant faire attention aux exceptions pouvant être lancées par cette méthode dans le cadre d'un programme destiné à la production :
Throws:
InputMismatchException - if the next token does not match the Float regular expression, or is out of range
NoSuchElementException - if the input is exhausted
IllegalStateException - if this scanner is closed
27 oct. 2009 à 23:14
Mais c'est plus joli de remplir 4 variables qui ont le même rôle avec un tableau et un for plutot que 4 variables note1 note2 note 3 note4 c'est sûr ;)