Exercice 1 sur 4
Ton premier tableau
Un tableau (array) stocke plusieurs valeurs du même type :
int[] nombres = {10, 20, 30};
Tu accèdes à chaque valeur par son indice — et il commence à 0 :
nombres[0] // 10
nombres[1] // 20
nombres[2] // 30
Change l'indice pour que Mer s'affiche.
Code de départ
void main() {
String[] jours = {"Lun", "Mar", "Mer", "Jeu", "Ven"};
IO.println(jours[0]);
}
Contexte
Les tableaux en mémoire
Un tableau est un seul bloc de mémoire continu. int[5] réserve 5 × 4 octets = 20 octets d'un seul tenant. C'est pour ça que l'accès par indice est ultra rapide — la JVM fait juste le calcul : adresse de départ + indice × taille d'un élément.
Les tableaux ont une taille fixe, définie à leur création, qui ne peut plus jamais changer. Si tu as besoin d'une taille qui grandit, utilise ArrayList.
Exercice 2 sur 4
Longueur d'un tableau
Avec .length, tu obtiens le nombre d'éléments :
int[] nombres = {10, 20, 30};
IO.println(nombres.length); // 3
Remplace ??? pour afficher la longueur du tableau.
Code de départ
void main() {
String[] couleurs = {"Rouge", "Vert", "Bleu", "Jaune"};
IO.println(???);
}
Contexte
.length sur les tableaux vs. les chaînes
Sur les tableaux, length est un attribut (sans parenthèses) : arr.length. Sur les chaînes de caractères, length() est une méthode (avec parenthèses) : str.length(). Tout le monde les confond au début — pas de panique.
La raison : les tableaux sont une construction spéciale intégrée directement au langage. Ce sont des objets, mais ils n'ont pas de méthode à eux pour ça — juste un attribut length intégré et en lecture seule. Les chaînes, elles, sont des objets normaux de la classe String, et elles te donnent leur longueur via une méthode.
Exercice 3 sur 4
Parcourir un tableau
Avec for-each, tu parcours tous les éléments — plus simple qu'avec un indice :
for (String s : monTableau) {
IO.println(s);
}
Lis-le comme : "Pour chaque String s dans monTableau".
Complète la boucle pour que tous les fruits s'affichent.
Code de départ
void main() {
String[] fruits = {"Pomme", "Poire", "Cerise"};
for (String ???) {
IO.println(fruit);
}
}
Contexte
Le for-each sous le capot
La boucle for-each, c'est du sucre syntaxique — en coulisses, le compilateur la transforme en boucle for classique. Pour les tableaux, il utilise un indice ; pour les collections, un Iterator.
Inconvénient : tu n'as pas accès à l'indice. Si tu en as besoin, utilise la version classique for(int i=0; ...).
Exercice 4 sur 4
Dernier élément
Le dernier élément a toujours l'indice length - 1 :
nombres[nombres.length - 1]
Remplace ??? pour afficher le dernier élément — quelle que soit la longueur du tableau.
Code de départ
void main() {
String[] animaux = {"Chien", "Chat", "Oiseau", "Poisson"};
IO.println(???);
}
Contexte
ArrayIndexOutOfBoundsException
Si tu accèdes à l'indice 4 d'un tableau de 4 éléments, tu obtiens une erreur à l'exécution — le programme plante. Java vérifie les limites à chaque accès (bounds checking).
Des langages comme le C ne font pas cette vérification — là, tu lis simplement ce qui traîne en mémoire (une source classique de failles de sécurité !). Java est plus sûr sur ce point.