Programmation java
V4
-
scriptiz Messages postés 1494 Statut Membre -
scriptiz Messages postés 1494 Statut Membre -
Bonjour,
je dois faire un mini programme qui calcule une moyenne de 4 notes avec une boucle, ça doit être tout simple.
Pour le moment j'ai fait ça, qu'est-ce qu'il y a de faux ? (je suis débutant, je viens de commencer la prog java)
Scanner readline = new Scanner(System.in);
double moyenne, note1=0.0, note2=0.0, note3=0.0, note4=0.0;
do
{
System.out.println("Entrez la note 1 : ");
note1 = readline.nextDouble();
System.out.println("Entrez la note 2 : ");
note2 = readline.nextDouble();
System.out.println("Entrez la note 3 : ");
note3 = readline.nextDouble();
System.out.println("Entrez la note 4 : ");
note4 = readline.nextDouble();
moyenne = ((note1 + note2 + note3 + note4)/4);
}
while (moyenne < 6 && moyenne >= 0);
System.out.printf("La moyenne est de " + moyenne);
je dois faire un mini programme qui calcule une moyenne de 4 notes avec une boucle, ça doit être tout simple.
Pour le moment j'ai fait ça, qu'est-ce qu'il y a de faux ? (je suis débutant, je viens de commencer la prog java)
Scanner readline = new Scanner(System.in);
double moyenne, note1=0.0, note2=0.0, note3=0.0, note4=0.0;
do
{
System.out.println("Entrez la note 1 : ");
note1 = readline.nextDouble();
System.out.println("Entrez la note 2 : ");
note2 = readline.nextDouble();
System.out.println("Entrez la note 3 : ");
note3 = readline.nextDouble();
System.out.println("Entrez la note 4 : ");
note4 = readline.nextDouble();
moyenne = ((note1 + note2 + note3 + note4)/4);
}
while (moyenne < 6 && moyenne >= 0);
System.out.printf("La moyenne est de " + moyenne);
Configuration: Windows Vista Firefox 3.5.3
7 réponses
-
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! -
-
donc dans ce cas la ça voudrait dire
note = note + readline.nextDouble()
pourquoi tu additionne le scanner ? j'arrive pas à comprendre dsl.. -
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
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 -
danimo, la méthode Scanner.nextDouble() retourne un double contrairement à ce que tu pourrais penser.
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