Méthode de lecture d'un tableau - Java
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Méthode de lecture d'un tableau - Java



  1. #1
    ScopeFater

    Méthode de lecture d'un tableau - Java


    ------

    Salut à tous! Je suis débutant en programmation Java, et je suis arrivé à un moment où on apprend à créer des méthodes (dans notre cas pour lire des tableaux).
    Alors en fait ce qui me dérange c'est que la méthode pour faire ceci dans le cours m'a été proposée de la sorte:
    Code:
    static void parcourirTableau(String[][] tab)
    {
       for(String tab2[] : tab)
      {
         for(String str : tab2)
         System.out.println(str);
      }
    }
    Il s'agit de la lecture d'un tableau à deux dimensions, (biensur au préalable un tableau est rempli puis envoyé à la méthode), cependant je ne comprends pas pourquoi on met deux boucles for à l'intérieur de notre méthode, parce que si j'ai bien compris, ce qui se passe ici:
    _Un tableau à deux dimensions est envoyé à la fonction.
    _Il est en quelque sorte entiérement stocké dans un tableau à une dimension
    _Ce tableau à une dimension est stocké dans la variable str pour que cette dernière soit ensuite affichée.

    Je ne vois pas l'utilité de ces deux boucles for, pourquoi ne met on pas directement:

    Code:
    static void parcourirTableau(String[][] tab)
    {
         for(String str : tab)
         System.out.println(str);
    }
    Je ne vois pas trop ce qui change à part qu'au lieu de tout stocker dans un tableau à une dimension pour ensuite afficher, on affiche directement.
    Et est-ce que s'il y avait un tableau à 3 dimensions il faudrait mettre 3 boucles for? ( )
    Et si j'envoie un tableau à une dimension dans cette fonction, le programme va planter?
    J'ai un niveau faible en informatique et en programmation donc merci d'employer les termes les plus simples possibles, et si ça peut vous servir je suis le cours du siteduzero.
    Merci de vos réponses!

    -----
    Dernière modification par Jack ; 24/04/2013 à 22h16. Motif: Balises code

  2. #2
    Jack
    Modérateur

    Re : Méthode de lecture d'un tableau - Java

    Comme sur tous les forums d'informatique, pense à encadrer ton code par des balises CODE

  3. #3
    Chanur

    Re : Méthode de lecture d'un tableau - Java

    Bonjour,
    tab est un tableau de tableaux de String
    tu ne peux pas écrire
    Code:
    for(String str : tab)
         System.out.println(str);
    parce que ça suppose que tab serait un tableau de String.

    Même si les données de tab sont effectivement stockées sous forme d'un tableau de String (je ne sais pas ); tu n'es pas censé le savoir. C'est la philosophie de Java : le programmeur n'a pas à savoir comment est organisée la mémoire et par exemple comment Java organise ses tableaux.

    A priori, si tab est un tableau à deux dimensions, c'est que ça a un intérêt dans le programme, sinon évidemment, on pouvait aussi déclarer tab comme ça :
    Code:
    static void parcourirTableau(String[] tab)
    {
         for(String str : tab)
         System.out.println(str);
    }
    mais il faut que quand on appelle parcourirTableau on lui passe bien un tableau à une dimension.
    A+
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  4. #4
    ScopeFater

    Re : Méthode de lecture d'un tableau - Java

    Donc je dois juste me contenter d'admettre ça?
    Et si j'ai un tableau à trois dimensions, devrais-je mettre trois for ou bien juste réutiliser la même formule que pour un tableau à deux dimensions.

  5. A voir en vidéo sur Futura
  6. #5
    Chanur

    Re : Méthode de lecture d'un tableau - Java

    Citation Envoyé par ScopeFater Voir le message
    Donc je dois juste me contenter d'admettre ça?

    Non, c'est pas comme ça que ça marche. Il existe des tas de moyens d'organiser des données informatiques, pour simplifier et clarifier le traitement qu'on en fait.
    Les tableaux à 1, 2, 3, ... dimensions sont des outils très pratiques, mais le problème se pose dans le sens inverse : c'est en partant d'un algorithme à programmer, qu'on doit organiser les données pour que ce soit le plus simple possible. On choisit un tableau à 2 (ou 3 ...) dimensions si on a une raison de le faire.
    Imagine par exemple une image : c'est nettement plus clair de la représenter comme un tableau à 2 dimensions que comme un tableau linéaire.
    Imagine maintenant une vidéo : une liste d'images. Tu peux la stocker dans un tableau de pixels à 3 dimensions : numéro d'image, hauteur et largeur. Mais qu'est-ce que représenterait une liste à une dimension de tous les pixels de ta vidéo ? Et tu te rends compte à quel point ce serait malcommode à traiter ?
    Imagine maintenant une liste de vidéos. Ça peut être un tableau de pixels à 4 dimensions, et ainsi de suite.

    Citation Envoyé par ScopeFater Voir le message
    Et si j'ai un tableau à trois dimensions, devrais-je mettre trois for ou bien juste réutiliser la même formule que pour un tableau à deux dimensions.
    Balayer chaque dimension, évidemment. Sinon pourquoi utiliserais-tu un tableau à 3 dimensions ?
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  7. #6
    ScopeFater

    Re : Méthode de lecture d'un tableau - Java

    Mais je ne vois toujours pas pourquoi pour un tableau à deux dimensions on met deux boucles for, trois dimensions trois boucles for... est-ce que chacune des boucles for parcourt une dimension du tableau? Auquel cas on ne me l'aurait pas dit, et tout deviendrait clair et parfait!
    Merci de vos réponses

  8. #7
    bzh_nicolas

    Re : Méthode de lecture d'un tableau - Java

    Citation Envoyé par ScopeFater Voir le message
    est-ce que chacune des boucles for parcourt une dimension du tableau?
    Oui c'est bien ça. Dans la première boucle on va, à chaque tour, recopier toute une dimension (soit un tableau à 1 dimension puisque un tableau à 2 dimensions est un tableau dont chaque élément est un tableau à 1 dimension) puis on va parcourir cette dimension avec la seconde boucle pour pouvoir faire un traitement pour chaque élément (ici pour l'afficher).

  9. #8
    ScopeFater

    Re : Méthode de lecture d'un tableau - Java

    Super merci beaucoup pour l'info!

Discussions similaires

  1. java tableau de short tcp
    Par invited08e1382 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 05/01/2012, 15h33
  2. Java tcp et tableau de byte
    Par invited08e1382 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 23/12/2011, 19h31
  3. Tableau en java
    Par Morghot dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 14/04/2011, 13h28
  4. Initialisation tableau en Java
    Par fiatlux dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 23/12/2010, 22h55
  5. Tableau en JAVA
    Par inviteb478b64d dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 20/04/2010, 14h56