L'intérêt principale de regrouper des données dans un tableau est de pouvoir leur appliquer des traitements d'ensemble. Pour cela on aura besoin de parcourir le contenu du tableau, pour le lire ou le modifier. Les boucles bornées for sont le moyen le plus adapté pour ce faire. Les deux exemples ci-dessous utilisent des boucles for indicées pour affecter le contenu de tableaux, le lire et le modifier.
package initial; public class ExempleDeTableau { public static void main(String[] args){ ConsoleTexte mc=new ConsoleTexte(); //Création d'un tableau d'entiers vide, contenant 25 places int[] monTableauDEntiers=new int[25]; //remplissage à l'aide d'une boucle for (int i=0;i<25;i=i+1){ monTableauDEntiers[i]=16*i; //l'élément d'indice i contiendra 16xi } //Affichage du contenu à l'aide d'une boucle mc.ecritln("table de 16 jusqu'à 25x16"); for (int i=0;i<25;i=i+1){ mc.ecritln(monTableauDEntiers[i]); } } }Autre exemple :
package initial; public class Palindrome { public static void main(String[] args) { ConsoleTexte mc=new ConsoleTexte(); //creation d'un tableau pouvant contenir 5 valeurs de type char char[] tablechar=new char[5]; //remplissage par des données fournies par l'utilisateur, à l'aide d'une boucle for (int i=0;i<5;i=i+1){ mc.ecritln("Entre un caractère"); tablechar[i]=mc.getChar(); } // affichage du contenu dans l'ordre d'entrée for (int i=0;i<5;i=i+1){ mc.ecrit(tablechar[i]); } // affichage du contenu dans l'ordre inverse for (int i=4;i>=0;i=i-1){ mc.ecrit(tablechar[i]); } } }
Attention l'indice des éléments d'un tableau varie entre 0 et "length"-1
Par exemple pour afficher le contenu d'un tableau monTableau contenant des chaînes de caractères :
for (String s:monTableau){ // à l'intérieur de cette boucle, s désignera successivement chacun des éléments du tableau.
mc.ecritln(s);
}
package initial; public class TableauChar { public static void main(String[] args) { ConsoleTexte mc=new ConsoleTexte(); // on crée un tableau de 15 caractères et on le remplit avec des lettres majuscules prises au hasard char[] tablechar=new char[5]; for (int i=0;i<15;i=i+1){ tablechar[i]= (char)(Math.floor(Math.random()*(26))+65); } // on affiche le contenu du tableau à l'aide d'une boucle for each for (char c:tablechar) { mc.ecrit(c); } mc.ecritln(); // on parcourt le contenu à l'aide d'une boucle for each, en tentant de le modifier. On affiche au fur et à mesure le contenu avant et après modification, et celle-ci semble marcher... for (char c :tablechar) { mc.ecrit(c); c='_'; mc.ecrit(c); } mc.ecritln(); // et pourtant si on affiche à nouveau le contenu... mc.ecritln(); for (char c :tablechar) { mc.ecrit(c); } // on constate qu'en fait il n'a pas changé } }