• # Les bases !

    Posté par . En réponse au message Problème pour déinir un tableau d'entier et surtout pour écrire une méthode d'affichage. Évalué à 3.

    Bon, il était 2 heures du mat' quand tu as posté ton message ... je vais donc considérer que tu étais fatigué pour louper de si grosses erreurs. Pour commencer il semblerait que ce soit tes premiers pas en Java (et en programmation vu les erreurs de ton code), je vais donc essayer d'être didactique en reprennant ligne par ligne ton code :
    < int[]tab; //declaration/
    < tab=new int[10]; // allocation/
    
    Bon ça c'est bon, c'est même bien de séparer la declaration de l'allocation quand on commence à programmer. Tu aurais pu aussi utiliser la version contractée déclation+allocation :
    int[] tab = new int[10]; //declaration et allocation 
    
    ou
    int tab[] = new int[10]; //declaration et allocation
    
    Ensuite pour l'initiatialisation de ton tableau tu as mis ça :
    < tab[0] = 1; //initialisation/
    < tab[1] = 2;
    < tab[2] = 3;
    < tab[3] = 4;
    < tab[4] = 5;
    < tab[5] = 6;
    < tab[6] = 7;
    < tab[7] = 8;
    < tab[8] = 9;
    < tab[9] = 10;
    
    Bon, ce n'est pas mauvais non plus, mais c'est un peu fastidieux comme méthode, on préfére d'habitude faire une boucle pour remplir le tableau :
    for (int i = 0; i < tab.length; i++) {
     tab[i] = i+1;
    }
    
    Tu remarqueras qu'on commence par mettre i à 0 et qu'on l'incrémente jusqu'à qu'il soit strictement inférieur à la taille du tableau (ici 10), donc i ira de 0 à 9. J'affecte donc à la position i du tableau la valeur i+1.
    < for(int count=0; count<=10; count++) {
    < System.out.println(count);
    < }
    
    Première erreur : dans ton System.out.println tu affiches la valeur de ton indice 'count' !! Tu dois plutôt vouloir afficher la valeur du tableau à la position 'count' :
    System.out.println(tab[count]);
    
    Si tu relances ton programme comme ça tu auras un joli "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10", c'est normal ton indice 'count' va de 0 à 10 puisque tu demandes d'arrêter l'incrémentation quand 'count' est inférieur ou égal à 10. Alors que logiquement tu dois t'arrêter à 9. Pour un tableau de taille n tu incrémente toujours de 0 à n-1 (dans presque tous les langages de programmation). En reprenant l'exemple pour l'initialisation tu peux écrire :
    for (int count=0; count<tab.length; count++) {
     System.out.println(tab[count]);
    }
    
    Voila, tu as un programme qui marche ... mais je te conseillerais de te prendre un bon bouquin de programmation Java si tu commences dans ce langage et si tu n'as jamais fait de programmation prend un bouquin d'algorithmie. Tu peux aussi trouver plein de tutoriaux sur Internet alors n'hésite pas à te servir.