У меня есть способ проверить, хочет ли пользователь играть в другую игру, проблема в том, что если пользователь вводит неверный ввод, то после правильного ввода anotherGame
по-прежнему устанавливается Y
Когда он выходит из метода, значение anotherGame
по-прежнему Y
, даже если они выбирают N
, если вводят неправильный ввод
Когда этот блок кода выполняется anotherGame
возвращает Y
нетнезависимо от того, что.
else
{
Console.WriteLine("ERROR: Invalid input (Y/N) only!");
promptRedo(anotherGame);
}
ПРИМЕР КОДА:
using System;
public class Program
{
public static void Main()
{
string anotherGame = "y";
while (anotherGame == "y")
{
anotherGame = promptRedo(anotherGame);
Console.WriteLine(anotherGame);
}
}
static String promptRedo(String anotherGame)
{
Console.Write("Would you like to play another game? (Y/N) => ");
String input = Console.ReadLine().ToLower();
if (input.Equals("y"))
{
anotherGame = "y";
}
else if (input.Equals("n"))
{
// get any key from user to exit program
Console.WriteLine();
Console.WriteLine("Thank you for playing!");
Console.WriteLine("Press any key to exit ...");
Console.ReadKey();
anotherGame = "n";
Console.WriteLine(anotherGame);
}
else
{
Console.WriteLine("ERROR: Invalid input (Y/N) only!");
promptRedo(anotherGame);
}
return anotherGame;
}
}