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.5100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
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.