Ma condition n'est pas comme ce que je souhaite

djun123 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
djun123 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
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 :

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.

3 réponses

Digital Penguin Messages postés 510 Statut Membre 105
 
Attention aux confusions entre exit et return: return sert à renvoyer une valeur, alors qu'exit permet d'arrêter l'exécution du programme. Si tu veux juste sortir de ta fonction, je te conseille de faire un return (0) ;)

Pour ce qui est de ton problème, essaye de rajouter des parenthèses. Personnellement, je l'aurais écrit comme cela:
if((nomDestinataire != pseudo->text()) && (nomDestinateur != pseudo->text()))
{
            QMessageBox::information(this,"test","erreur incomprehensible"); // Il me sert à détecter l'erreur
            return;
}


À priori, c'est tout ce que je peux voir. Sinon, il peut s'agir du retour de tes fonctions qui va causer l'entrée systématique dans ta condition. Essaye d'exécuter pas à pas avec un debugger :P
0
djun123 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Je ne peux pas faire return(0) parce que je suis dans une fonction void. Puis, même avec les paranthèse rien ne marche encore.

if( (nomDestinataire != pseudo->text()) && (nomDestinateur != pseudo->text()) )
{
            QMessageBox::information(this,"test",nomDestinataire+"="+pseudo->text()+" "+nomDestinateur+"="+pseudo->text());
            QMessageBox::information(this,"test","erreur incomprehensible");
             return;
}
0
djun123 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour votre aide, ça marche.
0