Как использовать несколько вариантов ввода от пользователя?

#c# #console-application

#c# #консольное приложение

Вопрос:

Я хочу использовать это:

 Console.WriteLine("What is your name?");
    string userName = Console.ReadLine();

    Console.WriteLine("{0} is a great name!", userName);
    Console.WriteLine("nWould you like me to tell you a story?");         
}
  

А затем иметь определенные команды, чтобы иметь возможность определять, сказали ли они какой-либо вариант слова «да» или «нет», и все входные данные «Да» попадают в этот вывод:

 Console.WriteLine("*Story*");
  

и все входные данные «Нет» попадают в этот вывод:

 Console.WriteLine("Would you like me to tell you a joke instead?");
  

я относительно новичок в этом, но я понимаю большинство САМЫХ основных понятий.

Комментарии:

1. Почему бы не использовать операторы if / else или, может быть, использовать switch!

Ответ №1:

Вы уже знаете, как получить строку от пользователя (вы запрашиваете его имя).

Так что сделайте это снова после того, как вы зададите пользователю свой вопрос. Затем вы можете использовать if-else блок, чтобы проверить, что пользователь ввел:

 if (answer == "yes") {
  // "yes" stuff here
} else if (answer == "no") {
  // "no" stuff here
} else {
  // "error" stuff here (retry input?)
}
  

Конечно, пользователь может ввести «ДА» или «Да», поэтому вы можете использовать Trim() для удаления любых пробелов вокруг строки и ToLower() преобразования ее в нижний регистр. Например.

 answer = answer.Trim();
answer = answer.ToLower();
  

Тогда вам больше не нужно беспокоиться о регистре или пробелах.

И если вы хотите обработать еще больше случаев, вы могли бы использовать некоторые логические условия ИЛИ:

 if (answer == "yes" || answer == "indeed" || answer == "affirmative") {
  

И я бы посоветовал вам поместить этот код в метод, чтобы вы могли вызывать его более одного раза без копирования вставки:

 private static bool UserInputAsBoolean(string input) {
    // your code from above here,
    // with "return true;" when the answer was "yes",
    // and "return false;" otherwise.
}

// later..
if (UserInputAsBoolean(input)) {
    // yes, tell a story
} else {
    // no, no story.
}