Ma condition n'est pas comme ce que je souhaite
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Ma condition n'est pas comme ce que je souhaite



  1. #1
    djun

    Ma condition n'est pas comme ce que je souhaite


    ------

    Bonjour,

    je suis un débutant en C++. J'apprend le c++ par moi-même à l'aide des tutoriel. Je suis en train de faire mon tout premier chat. Mais, j'ai un problème qui m'est survenu. C'est que dans ma condition :
    Code:
    QMessageBox::information(this,"test","destinateur = "+nomDestinateur); // Verifier nom destinateur
    QMessageBox::information(this,"test","destinataire = "+nomDestinataire); // verifier nom destinataire
    if(nomDestinataire!=pseudo->text()&&nomDestinateur!=pseudo->text())
            {
                QMessageBox::information(this,"test","erreur incomprehensible"); // Il me sert à détecter l'erreur
                return;
            }
    Si le nom du du destinataire n'est pas celui du compte ET que le nom du destinateur n'est pas celui du compte, j'arrête la fonction. Le problème c'est que si une des 2 conditions est vrai, la fonction s'arrête. Pourtant, je veux que c'est si ces 2 conditions sont vrai pour que la fonction puisse s'arrêter. Merci.

    -----

  2. #2
    Jack
    Modérateur

    Re : Ma condition n'est pas comme ce que je souhaite

    j'arrête la fonction
    Quelle fonction? De plus ça veut dire quoi arrêter? En sortir?

    Sinon, si j'ai bien compris, tu affiche ta messagebox avec "erreur incompréhensible" si une seule des 2 conditions est vraie? dans ce cas, tu interprètes mal tes conditions parce qu'il s'agit bien d'un ET logique.

  3. #3
    djun

    Re : Ma condition n'est pas comme ce que je souhaite

    Citation Envoyé par Jack Voir le message
    Quelle fonction? De plus ça veut dire quoi arrêter? En sortir?

    Sinon, si j'ai bien compris, tu affiche ta messagebox avec "erreur incompréhensible" si une seule des 2 conditions est vraie? dans ce cas, tu interprètes mal tes conditions parce qu'il s'agit bien d'un ET logique.
    Ma condition se trouve dans ma fonction donneesRecues(). Je veux que ma fonction s'arrête, c'est-à-dire que je veux que la fonction ne continue pas à s'exécuter, c'est pour cela que j'ai écrit "return".

  4. #4
    Bluedeep

    Re : Ma condition n'est pas comme ce que je souhaite

    Citation Envoyé par Jack Voir le message
    Quelle fonction? De plus ça veut dire quoi arrêter? En sortir?

    Sinon, si j'ai bien compris, tu affiche ta messagebox avec "erreur incompréhensible" si une seule des 2 conditions est vraie? dans ce cas, tu interprètes mal tes conditions parce qu'il s'agit bien d'un ET logique.
    T'as mal lu ; il y a une variable nomDestinataire et une variable nomDestinateur; donc son test est logique (même si le nommage des variables n'est en effet pas idéal pour la relecture du code - c'est le moins qu'on puisse dire).

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : Ma condition n'est pas comme ce que je souhaite

    Citation Envoyé par Bluedeep Voir le message
    T'as mal lu ; il y a une variable nomDestinataire et une variable nomDestinateur; donc son test est logique (même si le nommage des variables n'est en effet pas idéal pour la relecture du code - c'est le moins qu'on puisse dire).
    Non, j'avais bien lu, et son test est correct à priori, d'où mon "tu interprètes mal tes conditions parce qu'il s'agit bien d'un ET logique", puisque tout a l'air correct et que djun affirme que la fonction se termine même si une seule des 2 conditions est correcte.

  7. #6
    Bluedeep

    Re : Ma condition n'est pas comme ce que je souhaite

    Citation Envoyé par Jack Voir le message
    Non, j'avais bien lu, et son test est correct à priori, d'où mon "tu interprètes mal tes conditions parce qu'il s'agit bien d'un ET logique", puisque tout a l'air correct et que djun affirme que la fonction se termine même si une seule des 2 conditions est correcte.
    Au temps pour moi alors.

  8. #7
    djun

    Re : Ma condition n'est pas comme ce que je souhaite

    Citation Envoyé par Jack Voir le message
    Non, j'avais bien lu, et son test est correct à priori, d'où mon "tu interprètes mal tes conditions parce qu'il s'agit bien d'un ET logique", puisque tout a l'air correct et que djun affirme que la fonction se termine même si une seule des 2 conditions est correcte.
    Le problème c'est que ma condition était supposé s’exécuter si le nom du destinateur & le nom du destinataire n'est pas celui de l'utilisateur(pseudo). Mais au lieu de ça, si par exemple nom du destinateur est celui de l'utilisateur et le nom du destinataire est autre chose, la condition va quand même s’exécuter.

  9. #8
    Jack
    Modérateur

    Re : Ma condition n'est pas comme ce que je souhaite

    C'est bien ce que je dis.
    Mais au lieu de ça, si par exemple nom du destinateur est celui de l'utilisateur et le nom du destinataire est autre chose
    C'est peut-être ce que tu penses, mais ça ne l'est pas effectivement.
    par exemple, tu penses que le nom du destinateur est celui de l'utilisateur, mais dans la réalité ça ne l'est pas, pour un problème de casse par exemple (minuscule / majuscule). Il faudrait donc que tu testes individuellement chaque condition. Tu pourrais affecter chacune des conditions à un booléen dont tu vérifierais la valeur. Le plus simple est d'utiliser le debugger.

    A+

  10. #9
    djun

    Re : Ma condition n'est pas comme ce que je souhaite

    Citation Envoyé par Jack Voir le message
    C'est bien ce que je dis.C'est peut-être ce que tu penses, mais ça ne l'est pas effectivement.
    par exemple, tu penses que le nom du destinateur est celui de l'utilisateur, mais dans la réalité ça ne l'est pas, pour un problème de casse par exemple (minuscule / majuscule). Il faudrait donc que tu testes individuellement chaque condition. Tu pourrais affecter chacune des conditions à un booléen dont tu vérifierais la valeur. Le plus simple est d'utiliser le debugger.

    A+
    Afin de vérifier le contenue de chaque variable, j'ai faite un QMessageBox qui affiche leur valeur.
    Code:
    QMessageBox::information(this,"test","Destinataire("+QString(nomDestinataire.toUtf8().toHex())+") : " + nomDestinataire + "\n Destinateur ("+QString(nomDestinateur.toUtf8().toHex())+"): " + nomDestinateur +"\n pseudo ("+QString(pseudo->text().toUtf8().toHex())+"): " + pseudo->text());
    J'ai remarqué même si que la condition est faux, il exécute pareil.

  11. #10
    djun

    Re : Ma condition n'est pas comme ce que je souhaite

    Merci pour votre aide, ça marche.

  12. #11
    Jack
    Modérateur

    Re : Ma condition n'est pas comme ce que je souhaite

    Citation Envoyé par djun Voir le message
    Merci pour votre aide, ça marche.
    On peut savoir quel était le problème?

Discussions similaires

  1. Résolution équation avec inconnue comme terme et comme exposant fractionnaire
    Par Frans1002 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 28/06/2014, 08h33
  2. Réponses: 2
    Dernier message: 01/11/2013, 14h53
  3. Réponses: 1
    Dernier message: 10/05/2010, 15h25
  4. Réponses: 4
    Dernier message: 26/01/2008, 17h14
  5. Réponses: 4
    Dernier message: 22/06/2007, 15h25