C# Bei Stringeingabe in Integer neu abfragen

SubNatural

Commander
Registriert
Jan. 2009
Beiträge
2.897
Bei Stringeingabe in Integer neu abfragen[Erledigt]

Hallo,

ich habe folgenden Code:
Code:
Console.WriteLine("\nBesitzt der Kunde eine Kundenkarte? ( Nein=0 Ja=1)");
int kundenkarte = Convert.ToInt32(Console.ReadLine());

Wenn ich jetzt einen String eingebe, bleibt das Programm natürlich hängen.
Nun wollte ich frage, wie ich, bei einer Stringeingabe eine neue Abfrage starten kann.

Mit einer if-Abfrage, funktioniert das leider nicht.
Vielleicht mit Exceptions?

Vielen Dank
 
Zuletzt bearbeitet: (gelöst!)
hab mal ne Methode in Java geschrieben:

private static boolean stringTest(String line){
try{
i=Integer.parseInt(line);
return true;
} catch (NumberFormatException e) {
return false;
}
}
 
Zuletzt bearbeitet:
esb315 schrieb:
hab mal ne Methode in Java geschrieben:

private static boolean stringTest(String line){
try{
i=Integer.parseInt(line);
return true;
} catch (NumberFormatException e) {
return false;
}
}

Super Hilfe. :confused_alt:
 
Code:
string value = string.Empty;
int kundenKarte;
            
Console.WriteLine("\nBesitzt der Kunde eine Kundenkarte? ( Nein=0 Ja=1)");

while (true)
{
    value = Console.ReadLine();

    if (int.TryParse(value, out kundenKarte) && (kundenKarte == 0 || kundenKarte == 1))
        break;
    else
       Console.WriteLine("Eingabe ungültig!\n");
};
 
Ganz einfache Möglichkeit:

Code:
Console.WriteLine("\nBesitzt der Kunde eine Kundenkarte? ( Nein=0 Ja=1)");
string sInput = Console.ReadLine();
if(sInput == "0") Console.WriteLine("Ja"); else
  if(sInput == "1") Console.WriteLine("Nein"); else
    Console.WriteLine("Eingabe war weder 0 noch 1");

Ist zwar nicht mit Integer-Werten, aber wenn du die Unbedingt brauchst, kannst du sie ja noch in den ensprechenden "then"-teil eintragen.
 
Zuletzt bearbeitet:
danke für eure Antworten, ich habe jetzt die Lösung von jetzi genutzt.
Funktioniert perfekt :)
 
Zurück
Oben