Entwickler-Ecke
C# - Die Sprache - switch ohne goto
DrHoas - Sa 19.06.10 17:04
Titel: switch ohne goto
Hallo,
ich möchte die Eingabe des Users auslesen und entsprechend code ausführen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| switch (Console.ReadKey(true).KeyChar) { case '1': Console.WriteLine("Taste 1 gedrückt"); break; case 'a': break; default: break; } |
Ich will die Anwendung aber erst schließen wenn "a" gedrückt wird. D.h. nachdem die 1 gedrückt wurde, soll switch wieder von vorn losgehen. Bei erneuter Eingabe von 1 kommt also wieder der Text "Taste 1 gedrückt". Gibt's dafür ein Schlüsselwort? GoTo möchte ich eigentlich vermeiden.
Dank und Gruß
Philipp
Moderiert von
Christian S.: Code- durch C#-Tags ersetztModeriert von
Christian S.: Topic aus Basistechnologien verschoben am Sa 19.06.2010 um 17:09
Christian S. - Sa 19.06.10 17:09
Dann musst Du mit einer while-do-Schleife arbeiten. Die sollte in jedem Grundlagen-Tutorial vorkommen, ansonsten im
OPENBOOK VISUAL C#.
DrHoas - Sa 19.06.10 17:57
OK, folgendes hab ich gebastelt:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| char auswahl = Console.ReadKey(true).KeyChar; do { auswahl = Console.ReadKey(true).KeyChar; switch (auswahl) { case '1': Console.WriteLine("Taste 1 gedrückt"); break; case '2': Console.WriteLine("Taste 2 gedrückt"); break; case '3': Console.WriteLine("Taste 3 gedrückt"); break; default: Console.WriteLine("Programm wird beendet"); Thread.Sleep(1000); break; } } while (auswahl == '1' || auswahl == '2' || auswahl == '3'); |
Allerdings brauche ich "auswahl =" einmal außerhalb von "do-while" weil sonst "auswahl" im aktuellen Kontext nicht vorhanden ist und einmal innerhalb von "do-while" damit jedesmal eine neue Auswahl möglich ist. Dadurch sind beim ersten Durchgang aber zwei Eingaben nötig. Wie kann ich das umgehen?
Danke nochmal.
Philipp
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
Christian S. - Sa 19.06.10 18:01
Du kannst eine Variable doch deklarieren, ohne ihr einen Wert zuzuweisen! :-)
DrHoas - Sa 19.06.10 19:03
ok, ok, da hätte ich auch selber draufkommen können :-)
Danke
Philipp
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!