Je suis nouveau sur C#. J'ai un "menu" dans une application de console. Maintenant, quand j'ai fini de choisir un élément dans le menu et de faire ce que l'élément de menu nécessite, je veux boucler et afficher à nouveau le menu afin que l'utilisateur puisse choisir un élément de menu diffenrent. J'ai une sortie sur le menu et je veux seulement l'utiliser pour sortir. J'ai essayé une boucle while mais cela ne marche pas. Il ferme l'application après la sélection d'un élément de menu et l'exécution du code des éléments choisis. Qu'est-ce que je fais mal?Boucler une instruction switch
static void Main()
{
int input = 0;
while (true)
{
Console.WriteLine("MENU");
Console.WriteLine("Please enter the number that you want to do:");
Console.WriteLine("1. Do thing A");
Console.WriteLine("2. Do thing B");
Console.WriteLine("3. Do thing C");
Console.WriteLine("4. Do thing D");
Console.WriteLine("5. Do thing E");
Console.WriteLine("6. Do thing F");
Console.WriteLine("7. Exit");
int menuchoice = int.Parse(Console.ReadLine());
switch (menuchoice)
{
case 1:
Console.WriteLine("Thing A has been done");
break;
case 2:
Console.WriteLine("Thing B has been done");
break;
case 3:
Console.WriteLine("Thing C has been done");
break;
case 4:
Console.WriteLine("Thing D has been done");
break;
case 5:
Console.WriteLine("Thing E has been done");
break;
case 6:
Console.WriteLine("Thing F has been done");
break;
case 7:
Environment.Exit; //edit
break;
default:
Console.WriteLine("Sorry, invalid selection");
break;
}
input++;
if (input < 30)
continue;
else
break;
}
}
Quelqu'un peut-il s'il vous plaît aider? Merci d'avance!
EDIT: Je suis conscient que cela « Console.Exit » ne fonctionnerait pas. Je l'ai juste mis comme ça à mal que la console doit sortir là. Mon problème est que je dois boucler le menu entier à chaque fois qu'une option a été choisie et que le code d'option choisi a été exécuté. Je veux seulement utiliser la sortie pour sortir. Mais à ce stade, le menu ne boucle pas, la console se ferme après seulement 1 option ont été choisis et que le code d'options a couru.
EDIT: Qu'est-ce qui se passe lorsque vous démarrez votre programme et vous appuyez sur 1 suivi de retour? C'est le vrai problème, le menu ne semble pas être en boucle. Après avoir démarré mon programme et appuyé sur 1 suivi de retour le code dans le cas 1 fonctionne parfaitement mais alors la console se ferme juste. Si je redémarre la console et que j'appuie sur 2 cette fois, le code dans le cas 2 fonctionne aussi parfaitement mais la console se ferme à nouveau. J'ai testé tous mes cas comme ça et tous fonctionnent parfaitement.
Quel est le problème? (Remplacer Console.Exit par Environment.Exit()) –
En ce qui concerne votre édition: Pour moi votre échantillon boucles comme je l'attendrais. Que se passe-t-il lorsque vous lancez votre programme ('Console.Exit' remplacé par' Environment.Exit') et que vous appuyez sur 1 suivi de Return? Je soupçonne que l'échantillon que vous avez posté est quelque peu différent du code que vous utilisez (évidemment, car l'exemple ci-dessus ne compile pas). –
Je suis conscient que "Console.Exit" ne fonctionnerait pas. Je l'ai juste mis comme ça à mal que la console doit sortir là. J'ai essayé Environment.Exit(), mais ne semble pas fonctionner non plus. – CSharpSuzie