Probleme sur une procedure de controle [Résolu]

Signaler
Messages postés
44
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
17 février 2006
-
Messages postés
44
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
17 février 2006
-
bonjour, je suis entrain de faire un genre de jeu, questions-réponses,
et je demande dans un premier temps, si la personne en face est soit un
utilisateur soit l'administrateur, donc je fais :



Console.WriteLine("admin ou utilisateur ?");

string repq = Console.ReadLine();

// ensuite j'apelle une procedure

cont(repq);



static void cont (string rep)

{

while(repq !="admin" && repq != "utilisateur")

{

Console.WriteLine("erreur");

repq = Console.ReadLine();

}

}



Mais donc, quand je veux tester, et que je fais exprès de ne pas bien
taper les bons mots, et qu'ensuite on me redemande de saisir, et que je
mets une bonne réponse, cela m'affiche toujours erreur.



Pouvez-vous m'aider ?Si je l'ai mis dans cette catégorie, 'est parce que je dois le présenter demain ;)



Merci d'avance.

4 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
C'est normal, dans la version de ton code, repq de la fonction Main et repq de la fonction cont ne sont pas les memes variables

Pour que le repq tapé dans cont affecte le repq de la méthode Main, utlises le mot clé ref



<hr size= "2" width="100%">

static void Main(string[] args)

{

Console.WriteLine("admin ou utilisateur ?");

string repq = Console.ReadLine();

// ensuite j'apelle une procedure

cont( ref repq);

if (repq == "admin")

{

Console.WriteLine("Ca marche");

Console.ReadLine();

}



Console.ReadLine();

}



static void cont( ref string repq)

{

while (repq ! = "admin" && repq != "utilisateur")

{

Console.WriteLine("erreur");

repq = Console.ReadLine();

}

}



<hr size="2" width="100%">

Mx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
Si je tape qqchose comme ca, ca marche



<hr size="2" width="100%">



static void Main(string[] args)

{

Console.WriteLine("admin ou utilisateur ?");

string repq = Console.ReadLine();

// ensuite j'apelle une procedure

cont(repq);



Console.ReadLine();

}



static void cont(string repq)

{

while (repq != "admin" && repq != "utilisateur")

{

Console.WriteLine("erreur");

repq = Console.ReadLine();

}

}

<hr size="2" width="100%">


Mx
Messages postés
44
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
17 février 2006

static void Main(string[] args)
{
Console.WriteLine("admin ou utilisateur ?");
string repq = Console.ReadLine();
// ensuite j'apelle une procedure
cont(repq);
*** if (repq == "admin")
{
code ...
}****

Console.ReadLine();
}

static void cont(string repq)
{
while (repq != "admin" && repq != "utilisateur")
{
Console.WriteLine("erreur");
repq = Console.ReadLine();
}
}

Et donc en fait quand je me trompe, et qu'ensuite je tape admin, ça quitte mon application, et je ne comprends pas du tout. Si pour m'aider, il vous faut plus de bout de code, dites le moi ;).

Je vous remercie quand même pour votre réponse.
Messages postés
44
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
17 février 2006

Merci beaucoup, ça marche impec'. Je suis sauvé !!!