C # Посмотрите, если введен определенный ключ - PullRequest
0 голосов
/ 04 мая 2019

Я пытаюсь создать Magic 8 Ball.Если пользователь просит встряхнуть мяч, прежде чем задать вопрос, он получает ошибку.Если они задают вопрос (нажимая A), а затем просят встряхнуть его (нажимая S), они вызывают мой метод, который встряхивает список ответов.Я не пытаюсь напечатать ответ в этой части.

Проблема, с которой я столкнулся, заключается в том, что я не совсем уверен, как определить, введен ли пользователем определенный ключ.

namespace Magic8Ball_Console
{   

 class Program
    {
        static void Main(string[] args)
        {
        Console.WriteLine("Main program!");

        Console.WriteLine("Welcome to the Magic 8 Ball");
        Console.WriteLine("What would you like to do?");
        Console.WriteLine("(S)hake the Ball");
        Console.WriteLine("(A)sk a Question");
        Console.WriteLine("(G)et the Answer");
        Console.WriteLine("(E)xit the Game");
        Magic8Ball_Logic.Magic8Ball ball = new Magic8Ball_Logic.Magic8Ball();
        string input = Console.ReadLine().ToUpper();

        do
        {
            if (input == "S")
            {
                Console.WriteLine("Searching the Mystic Realms(RAM) for the answer");
                Console.ReadLine();
            }
            else if (input == "A") {
                //Call Method Shake()
                Console.ReadLine();
            }
        } while (input != "E");
    }
}
}

1 Ответ

2 голосов
/ 04 мая 2019

Поскольку вы прочитали пользовательский ввод в переменную input, проверьте его содержимое

string input = Console.ReadLine().ToUpper();
switch (input) {
    case "S":
        //TODO: Shake the Ball
        break;
    case "A":
        //TODO: Ask a question
        break;
    case "G":
        //TODO: Get the answer
        break;
    case "E":
        //TODO: Exit the game
        break;
    default:
       // Unknown input
       break;
}

Обратите внимание: если вам приходится различать многие случаи, обычно проще использовать switch, чем множество операторов if-else.

Я преобразовал ввод в верхний регистр, чтобы пользователь мог вводить команду в нижнем или верхнем регистре.

Вам придется использовать какой-то цикл, если вы не хотите, чтобы игра выходила после обработки первой команды. Э.Г.

do {
    // the code from above here
} while (input != "E");

См. Также: переключатель (ссылка на C #)

...