IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Méthode qui ne retourne pas la bonne valeur


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 11
    Par défaut Méthode qui ne retourne pas la bonne valeur
    j'ai fait cette fonction afin de faire la recherche d'une chaine de charactères dans un tableau de chaine de charactères , s'il trouve la chaine il retourne l'indice dans le tableau ou il a trouvè la chaine

    voila mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public int recherche(String ph , String[]table){
            int ind=0;
            boolean trouve=false ;
            int i=0;
            while((i<table.length) && (trouve=false)){
                if (table[i]==ph){
                    ind=i;
                    trouve=true;
                    }
                    else i ++ ;
     
                }
                return ind ;
     
        }


    mais quand j'apelle cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String mot="ecrire";
    int y=recherche(mot,montable); // mon table est un tableau qui contient des 
                                                 //  chaines de charactères dont ecrire est 
                                                  // la 4eme position
    System.out.println(y);
    mais ca me retourne 0

    je crois le probleme est dans la fonction mais je ne l'ai pa trouvé
    J'en ai besoin dans mn projet

  2. #2
    Membre averti
    Profil pro
    Doctorant en informatique théorique
    Inscrit en
    Décembre 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Doctorant en informatique théorique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 28
    Par défaut
    Salut,

    Dans ton test du while, c est (trouve==false) et pas (trouve=false) qui est en fait une assignation de false a la variable trouve.

    A l'avenir utilise les balises de code (#) stp, et donne un titre plus explicite a ton post aussi, parce qu on se doute bien que tu as un problème avec Java

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 66
    Par défaut
    Bonjour,

    Et si je peux me permettre dans ton while je mettrai pluton la ligne de code suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     while((i<table.length) && !trouve)
    Bon courage !!

    PS : N'oublie pas le mettre ton post à "Résolu" si ton problème est réglé

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    De plus, pour des comparaisons d'objets String, utilise la méthode equals() à la place de ==.

    == permet de voir l'égalité pour les types primitifs, mais pour les objets, permet de tester la référence.

    equals() permet de tester la valeur.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 11
    Par défaut
    Citation Envoyé par Hizin Voir le message
    De plus, pour des comparaisons d'objets String, utilise la méthode equals() à la place de ==.

    == permet de voir l'égalité pour les types primitifs, mais pour les objets, permet de tester la référence.

    equals() permet de tester la valeur.
    merciiii hizin c'etait ca le problème

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 11
    Par défaut
    en fait, j'ai remarquè q'il fallait pas recherhcer une seule chaine dans mon programme , il fallait parcourir 2 tableaux , et cherche pour chaque mot dans table1 si il se trouve dans table2 , s'il se trouve on met l'indice dans un autre tableau ind, sinon on continue a incrementer le table1 ..... enfain on retourne le table d'indice.
    mais j'ai trouvè un probleme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
      public int[] recherche(String[]table1 , String[]table2){
            int s =table1.length;
            int []ind=new int[s];
            boolean trouve=false ;
     
            int i=0;
     
            for(i=0;i<s;i++){
     
                int j=0;
            while((j<table2.length) && (trouve==false)){
                if (table2[j].equals(table1[i])){
                    ind[i]=j;
     
                    trouve=true;
                     }
                    else j ++ ;
     
                }
                if(trouve==false){
                    System.out.println("le mot " +table1[i]+ "pas trouvè");
                }
     
                }
            return ind;
     
        }
    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     int[]indices=recherche(listedemots,mots);
        for(int j=0;j<indices.length;j++){
        System.out.println(indices[j]);
        }
    mais dans l'execution , le tableau retourne seulement le bon resulta dans la 1er position(l'indice du mot trouvè) , et elle met des 0 0 0 ... pour les autres positions
    alors que normalement tous les chaines dans le tableau listedemots , sont trouvè dans le tableau mots

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Execute_query ne retourne pas les bonnes valeurs
    Par complicated dans le forum Forms
    Réponses: 2
    Dernier message: 23/11/2011, 11h12
  2. Requete qui n'affiche pas les bonnes valeurs
    Par snips67 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 29/01/2010, 10h54
  3. fonction avec if sur input radio qui ne renvoie pas la bonne valeur
    Par eddflo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/06/2009, 01h20
  4. [SQL Server] select max ne retourne pas la bonne valeur
    Par *alexandre* dans le forum Langage SQL
    Réponses: 7
    Dernier message: 29/09/2008, 14h49
  5. Réponses: 19
    Dernier message: 12/12/2007, 09h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo