Etwas verwirrend geschrieben und die if-Überprüfung, die schaut, ob das Zeichen erlaubt ist, sowie auch das Array dafür brauchst du gar nicht.
Ich hab das früher immer so gemacht, dass ich vor der while-Schleife eine Variable vom Typ bool anlege, die sagt, ob die Schleife weiter laufen soll oder eben nicht.
Soll die Schleife unterbrochen werden, also die Eingabeaufforderung beendet, dann wird diese Variable halt auf false gesetzt.
Und das geht auch recht einfach im switch-Block. Beim Default gibst du eine Fehlermeldung aus. Bei den cases setzt du die Variable auf false - zumindest wenn du das so willst.
Denk auch mal über das
single responsibility principle nach.
Das ist ein Programmier-Muster, das vor gibt, wie du arbeiten solltest um Probleme zu vermeiden. In deinem Fall ist der Gedanke wichtig, dass jede Methode nur exakt eine Aufgabe haben darf, nicht mehr, nicht weniger. Wenn du dir die Main-Methode so anschaust, wirst du fest stellen, da ist viel zu viel drin. Klar, da liegt das ganze Programm drin, aber einiges kann man in Methoden aus lagern und hat gleich alles viel übersichtlicher. Ich würde z.B. eine Methode schreiben, die für das Darstellen des Menüs da ist. Dann hast du da nur noch stehen WriteMenu() und weißt gleich, was da passiert, bloß auf eine Zeile zusammen geschrumpft.
Das sag ich jetzt auch nicht nur, weil es übersichtlicher ist, sondern auch bei der Fehlersuche hilft. Wenn du irgendeinen logischen Fehler hast, kannst du häufig schon ahnen, wo der liegen könnte, oder wenn eine Methode nur eine Aufgabe hat, ist es viel leichter, zu schauen, ob sie die Aufgabe auch korrekt erledigt.
Zu deinem Problem:
Schau dir mal an, was passiert,
nachdem der Fernseher gestartet wurde
Ich geb dir einen Tipp: Da passiert sehr wohl was.
Und noch Einen: Der Computer ist ein verdammt schneller Dummkopf ^^
Du kannst es auch mit dem Debugger raus finden.
Wenn du irgendwo einen Haltepunkt setzt und das Programm dort hält, kannst du mit F10 und F11 Schritt für Schritt weiter laufen.
Ich glaube F11 geht auch in die Methoden rein und du kannst dann in der Methode weiter gehen, während F10 jede Methode, die du siehst, einfach nur ausführst und gleich zum nächsten Schritt über geht.
Da kann es aber sein, dass ich die beiden Tasten gerade vertausche, probiere einfach aus, der Debugger vom Visual Studio ist eine extreme Hilfe bei so Fehlern ^^