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

Я хочу, чтобы пользователь ввел вопрос. Они могут напечатать «А» и задать вопрос. Если они наберут «S», то это встряхнет список ответов. Если они введут «S», прежде чем ввести вопрос, они получат сообщение об ошибке.

У меня проблемы с моими утверждениями if else. Кажется, я не могу понять, введут ли они вопрос до того, как встряхнут.

Program.cs:

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();

     public string userAnswer

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

Magic8Ball.cs

public void Shake()
    {
        //picking the index of the answer to show the user
        Random r = new Random();
        int index = r.Next(_answers.Count);
        randomString = _answers[index];
    }

    public string GetAnswer()
    {
        //using the index picked by shake to return the answer
        //return "";
        return randomString;
    }
    }

1 Ответ

1 голос
/ 04 мая 2019

Причина проблемы в том, что вы не инициализировали userAnswer, и именно поэтому, когда пользователь вводит S в первый раз, переменная userAnswer имеет случайное значение, которое очень вероятно, !=null.

Исправить несложно: инициализировать userAnswer с помощью null.

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