Autor Beitrag
DrHoas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47



BeitragVerfasst: Sa 19.06.10 17:04 
Hallo,

ich möchte die Eingabe des Users auslesen und entsprechend code ausführen:

ausblenden 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 user profile iconChristian S.: Code- durch C#-Tags ersetzt
Moderiert von user profile iconChristian S.: Topic aus Basistechnologien verschoben am Sa 19.06.2010 um 17:09
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 19.06.10 17:09 
Dann musst Du mit einer while-do-Schleife arbeiten. Die sollte in jedem Grundlagen-Tutorial vorkommen, ansonsten im Suche bei Google OPENBOOK VISUAL C#.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
DrHoas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47



BeitragVerfasst: Sa 19.06.10 17:57 
OK, folgendes hab ich gebastelt:

ausblenden 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 user profile iconChristian S.: Code- durch C#-Tags ersetzt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 19.06.10 18:01 
Du kannst eine Variable doch deklarieren, ohne ihr einen Wert zuzuweisen! :-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
DrHoas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47



BeitragVerfasst: Sa 19.06.10 19:03 
ok, ok, da hätte ich auch selber draufkommen können :-)

Danke

Philipp