tableau java
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

tableau java



  1. #1
    invite1003d320

    tableau java


    ------

    bonsoir ce code n'est pas trés clair pour moi a partir de while
    Code:
    import java.util.Scanner;
    
    public class Exo4
    {
    
        public static void main (String[] args)
        {
            int[] liste = new int[10]; 
            int n;
            Scanner scan = new Scanner(System.in);
            
            System.out.println("Entrer les nombres (compris entre 0 et 9, -1 pour quitter)");
            n = scan.nextInt();
     
            while(n != -1)
            {
                
                liste[n]++;
                n = scan.nextInt();
             }
             
             
             for (int i = 0; i < liste.length; i++)
             {
                 if (liste[i] != 0)
                    System.out.println ("le nombre " + i + " est introduit " + liste[i] + " fois");
    
             }
         }
    }

    -----
    Dernière modification par Jack ; 12/11/2016 à 17h26. Motif: Balises code

  2. #2
    Jack
    Modérateur

    Re : tableau java

    Ca ressemble à un algorithme de tri par panier. Tu comptes chaque occurrence de la valeur de n dans un tableau à la position n.

    Qu'est-ce qui t'empêche de dérouler le programme en pas à pas en inspectant la valeur des variables au fur et à mesure?

  3. #3
    invite1003d320

    Re : tableau java

    tu pourrais m'expliquer a partir de while etape par etape svp et je comprends pas la difference entre le i et n pourquoi dans le system.out.print on met pas +liste[n]+

  4. #4
    CM63

    Re : tableau java

    Bonjour,

    Parce que c'est i l'indice de boucle et pas n .

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

    Re : tableau java

    Sinon, faire tourner le code sous debugger et examiner les valeurs des variables à chaque étape est sans doute plus efficace pour comprendre qu'une explication ici et largement plus formateur.

  7. #6
    Jack
    Modérateur

    Re : tableau java

    je comprends pas la difference entre le i et n
    Tu aurais pu les appeler toto ou pifpafpouf, ça n'aurait rien changé. Si tu veux, tu peux donc remplacer n par i.

    pourquoi dans le system.out.print on met pas +liste[n]+
    parce que l'incrémentation c'est ++, comme dans tous les langages dont la syntaxe s'inspire du langage C. Je pense qu'il faut te replonger dans le cours de base de java.

    Sinon, faire tourner le code sous debugger et examiner les valeurs des variables à chaque étape est sans doute plus efficace pour comprendre qu'une explication ici et largement plus formateur.
    En effet, c'est ce que j'avais conseillé dans mon message #2

  8. #7
    pm42

    Re : tableau java

    Citation Envoyé par Jack Voir le message
    Tu aurais pu les appeler toto ou pifpafpouf, ça n'aurait rien changé. Si tu veux, tu peux donc remplacer n par i.
    En fait, il ne peut pas. La variable dans la boucle for ne peut pas avoir déjà été définie. Elles doivent donc avoir des noms différents tant qu'on est dans le même scope.

    Citation Envoyé par Jack Voir le message
    Je pense qu'il faut te replonger dans le cours de base de java.
    En effet.

    Citation Envoyé par Jack Voir le message
    En effet, c'est ce que j'avais conseillé dans mon message #2
    My bad, j'ai raté cette phrase

  9. #8
    Jack
    Modérateur

    Re : tableau java

    Citation Envoyé par pm42 Voir le message
    En fait, il ne peut pas. La variable dans la boucle for ne peut pas avoir déjà été définie. Elles doivent donc avoir des noms différents tant qu'on est dans le même scope.
    Mea culpa Ne connaissant pas vraiment java, je pensais que le comportement était identique à celui de C++ ou une variable déclarée dans un for est locale au for et prend donc le pas sur une éventuelle variable du même nom déclarée dans la fonction

  10. #9
    pm42

    Re : tableau java

    Citation Envoyé par Jack Voir le message
    Mea culpa Ne connaissant pas vraiment java, je pensais que le comportement était identique à celui de C++ ou une variable déclarée dans un for est locale au for et prend donc le pas sur une éventuelle variable du même nom déclarée dans la fonction
    Ben j'avais un doute aussi et j'ai testé... Donc pas besoin de se culpabiliser

  11. #10
    Jack
    Modérateur

    Re : tableau java

    donc tu confirme bien que le comportement est divergent entre java et C++ sur ce point?

  12. #11
    Jack
    Modérateur

    Re : tableau java

    Je viens d'essayer avec un compilateur en ligne, et on ne peut pas déclarer une variable locale dans un for si le même identificateur est déjà utilisé.

    Pour en revenir au problème d'origine, on aurait donc bien pu utiliser uniquement n à la condition de remplacer
    Code:
    for (int i = 0; i < liste.length; i++)
    par
    Code:
    for (n = 0; n < liste.length; n++)

  13. #12
    Dlzlogic

    Re : tableau java

    Bonjour,
    Autre suggestion : fermer la machine et écrire l'algorithme, en français, qui répondrait à la question suivante : dans une classe, chaque élève note sur son cahier un nombre entre 1 et 10.
    Le professeur veut compter combien il y a de de 1, de 2, de 3, ... de 10. Comment va-t-il faire ?
    Une fois que cet algorithme sera écrit et testé, il pourra être traduit en Java et comparé au code proposé.

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, 16h33
  2. Java tcp et tableau de byte
    Par invited08e1382 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 23/12/2011, 20h31
  3. Tableau en java
    Par invite00c73359 dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 14/04/2011, 14h28
  4. Initialisation tableau en Java
    Par invitea29b3af3 dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 23/12/2010, 23h55
  5. Tableau en JAVA
    Par inviteb478b64d dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 20/04/2010, 15h56