C#: Wenn die Eingabe keine Zahl ist?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Nutze eine Schleife in Kombination mit TryParse:

double zahl;

do
{
  Console.WriteLine("Bitte geben Sie eine Zahl ein.");
}
while (!double.TryParse(Console.ReadLine(), out zahl));

Wenn die Eingabe erfolgreich zu einer Zahl mit Nachkommastelle geparst werden kann, wird der evaluierte Wert in zahl gespeichert. Andernfalls erfolgt eine Wiederholung der Abfrage.

Die TryParse-Methode gibt es auch für andere Typen, wie z.B. Int32.

Was du machen könntest ist eine Schleife. Du setzt also die Abfrage in eine Schleife und darin machst du einen Try-Catch Block. In dem Try Block ist dann die Abfrage für zahl und Die Konvertierung. Falls eine nicht valide Zahl eingegeben wird, wird der catch Block aufgerufen in dem du so etwas aus gibst wie "falsche Eingabe". Und mit dem Keyword "continue" springst du dann wieder zum Anfang der schleife.

Das würde dann ungefähr so aussehen:

int zahl;

while(true) 
{
  try
  {
     Console.WriteLine("bitte geben Sie eine zahl ein") ;
     zahl = Convert.ToInt32(Console.ReadLine());
     break;
  }
  catch
  {
     Console.WriteLine("ungültige Eingabe") ;
     continue;
  } 
} 
Woher ich das weiß:Hobby – Ich interessiere mich für das programmieren und Informatik
1Anastasia1 
Fragesteller
 27.06.2021, 22:17

Oh Danke dir das probiere ich gleich mal aus

1