Guess the Number c#. Das Programm soll eine Meldung ausgeben wenn der Benutzer Buchstaben eingibt?
Ich hab auf Visual Studios mit C# ein Spiel in dem der Computer sich eine zufällige Zahl zwischen 1 und 100 ausdenkt. Und meine Frage ist wie man eine Error anzeige macht wenn der Benutzer statt Zahlen Buchstaben eingibt.
3 Antworten
Für die Prüfung kannst du auf das Ergebnis von TryParse bauen:
string userInput = Console.ReadLine();
if (int.TryParse(userInput, out int number))
{
// valid number ...
}
else
{
Console.WriteLine("Please enter a valid number.");
}
Diese Methode versucht eine ganze Zahl aus einen String zu parsen. Wenn das scheitert, gibt sie false zurück, andernfalls true. Die geparste Zahl wiederum wird bei Erfolg in eine neue Variable number geschrieben.
Genau genommen verhindert diese Implementation auch weitere invalide Eingaben, die genauso aus Sonderzeichen, statt Buchstaben bestehen könnten.
Wollte man ganz konkret nur nach Buchstaben schauen, könnte eine Lösung auch so aussehen:
if (userInput.Any(Char.IsLetter))
{
Console.WriteLine("Input contains a letter.");
}
else
{
// userInput contains no letter
}
Die Methode Any ist eine Erweiterungsfunktion aus dem System.Linq-Namespace, der in dein Programm eingebunden werden muss. Die Methode durchläuft jedes einzelne Zeichen des Strings und ruft für jedes die IsLetter-Methode der Char-Struktur auf. Wenn auch nur ein Zeichen als Buchstabe erkannt wird, bricht die Methode ihre Arbeit ab und gibt den Wert true zurück. Bei keinem Fund hingegen natürlich false.
if ( !(text >= 0))
{
MessageBox.Show("Meldungstext");
}
Wenn's .net Framework ist dann MessageBox.Show.