Adloun

programmation Java (école d'ingénieur) · Chapitre 6 · Application directe du cours

Moyenne saisie au clavier

Chaînes de caractères et entrées · niveau 2

Énoncé

Écrire un programme qui demande un nombre de notes, puis les notes, et affiche leur moyenne avec deux décimales et la meilleure note. Si l'utilisateur tape autre chose qu'un nombre, le programme doit le signaler et redemander, sans s'arrêter. On écrira une méthode static double lireDecimal(Scanner sc, String invite).

Corrigé


import java.util.Scanner;

public class MoyenneSaisie {

    /** Lit un nombre décimal, en redemandant tant que la saisie est invalide. */
    static double lireDecimal(Scanner sc, String invite) {
        System.out.print(invite);
        while (!sc.hasNextDouble()) {
            System.out.print("« " + sc.next() + " » n'est pas un nombre. " + invite);
        }
        return sc.nextDouble();
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = (int) lireDecimal(sc, "Nombre de notes : ");
        double somme = 0, max = -1;
        for (int i = 1; i <= n; i++) {
            double note = lireDecimal(sc, "Note " + i + " : ");
            somme += note;
            if (note > max) max = note;
        }
        System.out.printf("Moyenne : %.2f, meilleure note : %.1f%n", somme / n, max);
    }
}

Une exécution :


Nombre de notes : 3
Note 1 : 12.5
Note 2 : douze
« douze » n'est pas un nombre. Note 2 : 14
Note 3 : 9.75
Moyenne : 12.08, meilleure note : 14.0

La méthode reçoit le Scanner en paramètre : on n'en crée qu'un. Le sc.next() dans la boucle consomme le mot refusé ; sans lui, la boucle ne s'arrêterait jamais. Le maximum part de , plus petit que toute note possible. Il faudrait encore refuser , sans quoi la moyenne divise par zéro (et affiche NaN).

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →