A voir également:
- Java tableau
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Tableau word - Guide
3 réponses
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
18 nov. 2010 à 17:30
18 nov. 2010 à 17:30
Je perçois un problème de raisonnement dans ce que tu fais...
null est un Object, il peut être n'importe où dans ton tableau, y compris en plein milieu d'autres Object, ça ne peut donc pas être la condition d'arrêt de ta boucle !
Voici un exemple qui devrais renvoyer 3, mais qui avec ton code renvoie 2 :
Voici un code que je te propose pour obtenir le bon résultat :
null est un Object, il peut être n'importe où dans ton tableau, y compris en plein milieu d'autres Object, ça ne peut donc pas être la condition d'arrêt de ta boucle !
Voici un exemple qui devrais renvoyer 3, mais qui avec ton code renvoie 2 :
monTableau[0]= new String("Bonjour"); monTableau[1]= new Integer(50); monTableau[2]= null; monTableau[3]= new Double(4.35); System.out.println(cardinal());
Voici un code que je te propose pour obtenir le bon résultat :
public static int cardinal() { int i=0; for (Object o : monTableau) // pour chaque objet o de monTableau if (o!=null) i++; return i; }
J'ai trouvé moi même une réponse (toute bête)
pour ceux que ça pourrait intéressé :
public int cardinal() {
int i = 0;
while(monTableau[i] != null && i < monTableau.length){
i++;
}
return i;
}
pour ceux que ça pourrait intéressé :
public int cardinal() {
int i = 0;
while(monTableau[i] != null && i < monTableau.length){
i++;
}
return i;
}
Bonjour,
J'ajouterais que dans ta boucle, il faudrait que tester d'abord que la taille du tableau n'est pas dépassée; si ton tableau est plein c'est le Out of bounds assuré.
Sinon tu fais une boucle type for each comme celle que te propose KX.
En revanche il y a un truc qui m'échappe dans l'explication de KX.
Pour moi il s'agit d'un tableau de références donc si une des cases est à null, cela veut dire qu'il n'y a pas d'objet associé ou un objet initialisé à null.
Donc s'il s'arrange pour ne pas laisser de trous dans son tableau, c'est à dire avoir tous ses objets les uns à la suite des autres depuis l'indice 0, et à n'avoir que des objets initialisés, je dirais qu'il n'y a aucun problème avec sa boucle et son test (à part l'ordre des booléens)...
J'ajouterais que dans ta boucle, il faudrait que tester d'abord que la taille du tableau n'est pas dépassée; si ton tableau est plein c'est le Out of bounds assuré.
Sinon tu fais une boucle type for each comme celle que te propose KX.
En revanche il y a un truc qui m'échappe dans l'explication de KX.
Pour moi il s'agit d'un tableau de références donc si une des cases est à null, cela veut dire qu'il n'y a pas d'objet associé ou un objet initialisé à null.
Donc s'il s'arrange pour ne pas laisser de trous dans son tableau, c'est à dire avoir tous ses objets les uns à la suite des autres depuis l'indice 0, et à n'avoir que des objets initialisés, je dirais qu'il n'y a aucun problème avec sa boucle et son test (à part l'ordre des booléens)...