Ich schreibe einen Code, der den Benutzer nach seinem Namen fragt, und wenn er einen Witz lesen will. Die Antwort sollte auf y oder n beschränkt sein. Jedes andere Zeichen sollte als ungültig betrachtet werden und sollte zu der Frage zurückkehren. Hier ist, was ich bisher gemacht habe.Beschränken Benutzer auf Eingabe y oder n und zeigen Ergebnis entsprechend in C#
static void Main(string[] args)
{
string name="";
string KeyChar;
Console.WriteLine("Hello, what is your name?");
name=Console.ReadLine();
Console.WriteLine("Greetings, " + name + ". Would you like to read a joke? (y/n)");
ConsoleKeyInfo result = Console.ReadKey();
Console.WriteLine("\n");
while (true)
{
while ((result.KeyChar != 'Y') || (result.KeyChar != 'y') || (result.KeyChar != 'N') || (result.KeyChar != 'n'))
{
Console.WriteLine("Invalid key. Limit your answer to y or n");
break;
}
while ((result.KeyChar == 'Y') || (result.KeyChar == 'y') || (result.KeyChar == 'N') || (result.KeyChar == 'n'))
{
if ((result.KeyChar == 'Y') || (result.KeyChar == 'y'))
{
Console.WriteLine("Joke question?");
Console.ReadLine();
Console.WriteLine("Joke answer.");
break;
}
else if ((result.KeyChar == 'N') || (result.KeyChar == 'n'))
{
Console.WriteLine("You're missing on all the fun! Suit yourself. Goodbye!");
break;
}
}
}
}
Ergebnis = Console.ReadKey(); am ende von while (wahr) und ersetze deine 2 inneren whites mit ifs. – Master117