Wie kann ich die Schleife eine case-Anweisung switch wenn ein Ungültiger Wert gewählt wird, ich.e der Standard
Hier ist ein Beispiel, wo ein Menü von Werten zur Verfügung. ich möchte es Schleife zurück an den start, wenn keine Optionen gewählt werden.
static void Main(string[] args)
{
Console.WriteLine("1 : Option 1");
Console.WriteLine("2 : Option 2");
Console.WriteLine("3 : Option 3");
Console.WriteLine("4 : Option 4");
Console.WriteLine("5 : Option 5");
Console.Write("Please enter your option choice: ");
string choice = Console.ReadLine();
int intChoice = int.Parse(choice);
switch (intChoice)
{
case 1:
Console.WriteLine("you chose 1");
break;
case 2:
Console.WriteLine("you chose 2");
break;
case 3:
Console.WriteLine("you chose 3");
break;
case 4:
Console.WriteLine("you chose 4");
break;
case 5:
Console.WriteLine("you chose 5");
break;
}
}
Ich habe versucht, es zu tun durch die Verwendung von Klassen und Methode, aber ich habe gerade wirklich verwirrt.
vielen Dank im Voraus für jede Hilfe.
- Das ist nicht, wie switch-Anweisungen arbeiten. Sie müssen wickeln Sie das ganze um ein
while
oderfor
Schleife - Als beiseite (und, wie gezeigt, in Heathers Beispiel unten), möchten Sie vielleicht zu prüfen, mit int.TryParse, um zu überprüfen, dass die 'Wahl' kann ja konvertiert werden, ein int. Sie können weiterhin mit int.Parsen, aber würde wickeln Sie es in ein try/catch-block - jetzt eine ungültige Wahl könnte beenden Sie die app mit einer nicht behandelten Ausnahme.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wickeln Sie das ganze in einer
do-while
block:Verwenden Sie einen booleschen Wert als ein flipswitch zu sagen, dass der
while
Schleife weiter ausgeführt werden soll oder nicht. Hier ist ein kleines Beispiel:können Sie verwenden Standard -
es ist Ihre Wahl nach, wie Sie möchten, es zu tun. Sie können einen während und einen booleschen Wert wie diese:
Somit benötigen Sie nur eine Zahl, es ist besser
GetKey
Methode, dann Lesenstring
Wert von der Konsole und dann analysieren es aufint
:Auch, die ich entpackt habe mehrere Methoden, um den code sauber:
Console.ReadKey
auf der msdn-Website msdn.microsoft.com/en-us/library/system.console.readkey.aspx Auch Sie sind frei zu Fragen, über die Methoden. Was ist nicht klar?Main
Methode. Dann fügen Sie die anderen zwei Methoden, die unter IhremMain
Methode (innenProgram
Klasse). Und im letzten Schritt fügen Sie wordstatic
beide Methoden-definition. Wie diese:private static void DisplayOptions()
Edit: Hinzugefügt expliziten Wert zu überprüfen, anstatt zu akzeptieren eine ganze Zahl.
42
? 🙂Die naheliegendste Lösung zu sein scheint:
Könnte es einen besseren Weg, dies zu tun, obwohl.