Adloun

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

Un groupe incomplet

Classes et objets · niveau 1 (application)

Énoncé

Un groupe de TD peut accueillir 5 étudiants, mais seuls 2 sont inscrits :


Etudiant[] groupe = new Etudiant[5];
groupe[0] = new Etudiant("Alice", 14);
groupe[1] = new Etudiant("Bilal", 11);

La méthode suivante est censée calculer la moyenne du groupe. Elle s'arrête pourtant sur l'exception NullPointerException. Expliquer pourquoi, puis la corriger pour qu'elle calcule la moyenne des seuls étudiants présents.


static double moyenneDesPresents(Etudiant[] t) {
    double somme = 0;
    for (Etudiant e : t) somme += e.moyenne;
    return somme / t.length;
}

Corrigé

Les cases groupe[2] à groupe[4] valent null : créer le tableau n'a créé aucun étudiant. À la troisième itération, e vaut null et e.moyenne provoque l'exception. Même sans elle, diviser par t.length (5) serait faux : il faut diviser par le nombre d'étudiants présents.


static double moyenneDesPresents(Etudiant[] t) {
    double somme = 0;
    int n = 0;
    for (Etudiant e : t) {
        if (e != null) {          // une case vide contient null
            somme += e.moyenne;
            n++;
        }
    }
    return n == 0 ? 0 : somme / n;
}

Sur le groupe de l'énoncé, la méthode retourne :


12.5

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 →