C++ Programmierung - Falsche Eingabe abfangen?
Hallo,
ich habe ein kleines Problem, bei dem ich bis jetzt leider nichts gefunden habe was aktuell ist oder mir helfen könnte.
Ich habe eine Switch-Case Abfrage, bei der man 4 Möglichkeiten zur Wahl hat. Ich hätte nun aber gerne dass zum Beispiel Buchstaben oder Zahlen die nicht zur Möglichkeit stehen abgefangen werden und ein Fehler ausgegeben wird, sodass man es erneut versuchen kann.
Habe es momentan mit einer Variable default == 0 und die Switch-Case Abfrage in einer Do-While Schleife, die so lange durchgespielt werden soll bis default == 1 wird. So kann man die vier Möglichkeiten nutzen und default wird auf 1 gesetzt, bei default allerdings wird die Variable default auf 0 gesetzt und man soll erneut durchgehen.
Das Problem besteht darin, dass der Fehler unendlich oft ausgegeben wird und man jede Eingabe doppelt tätigen muss, beim ersten Mal erscheint keine Rückmeldung.
Auch wenn die Frage etwas komplizierter klingt, freue ich mich über alle Tipps und Tricks, vielen Dank!
2 Antworten
Es gibt doch Case Else das ist dafür gemacht. Noch mal zurück zu den Grundlagen und den Select Case Befehl lernen.
Es gibt bei jedem Switch ein "Default", genannt.... "default". ;-) Das ist sowas wie der "else"-Teil einer if-Bedingung.
Also so was:
switch(a)
{
case 1:
...
break;
case 2:
...
break;
default:
...
}
Vielen Dank soweit hab ich das verstanden, gibt es denn eine einfache Möglichkeit bei einer falschen Eingabe von vorne zu starten?
Sicher:
bool is_valid = false;
while (!is_valid)
{
const int selection = ...
switch (selection)
{
case 1:
// Valid selection
is_valid = true;
break;
default:
// Not valid
}
}
Das klingt nicht nach C++.