Для неназначенных сообщений о локальных переменных, если вы объявили переменные вне цикла и просто использовали их внутри цикла, появятся неназначенные информационные сообщения о локальных переменных, это не нарушит работу приложения, оно просто скажет вам, что вы этого не сделалииспользуйте переменную в текущей области видимости.Это хорошая функция, которая поможет вам очистить код от неиспользуемых переменных.
Что касается вашего кода, вы можете сделать это следующим образом:
string name = string.Empty, wtd = string.Empty, act = string.Empty, trav = string.Empty;
int result = 0, ppl = 0;
bool isTrue = true;
Console.WriteLine("What is your name?");
name = Console.ReadLine();
Console.WriteLine("Hello {0}, What do you want to do today?", name);
while (isTrue)
{
Console.WriteLine("1) Action\n2) Chilling\n3) Danger\n4) Good Food\n");
var isValidInt = int.TryParse(Console.ReadLine(), out result);
if(isValidInt)
{
if (result == 1)
{
wtd = "action";
act = "Stock Car Racing";
isTrue = false;
}
else if (result == 2)
{
wtd = "chilling";
act = "Hiking";
isTrue = false;
}
else if (result == 3)
{
wtd = "danger";
act = "Skydiving";
isTrue = false;
}
else if (result == 4)
{
wtd = "good food";
act = "to Taco Bell";
isTrue = false;
}
else
{
wtd = "";
act = "";
Console.WriteLine("I do not understand. Please select again");
}
}
else
{
Console.WriteLine("Use numbers only");
}
}
Console.WriteLine("Okay. If you are in the mood for " + wtd + ", then you should go " + act + "and travel in " + trav + ".");
Переменная isTrue
сообщит циклу, что цикл должен продолжаться, например, если пользовательский ввод 1
, для переменной будет установлено значение false, чтобы завершить цикл, если пользователь введет какие-либо числа больше 4, он просто оставит его внутри цикла и начнет все сначала.
Я также заменил эту строку result = Convert.ToInt32(Console.ReadLine());
на эту int.TryParse(Console.ReadLine(), out result);
, вы всегда должны использовать TryParse вместо непосредственного преобразования целых чисел.TryParse
проверит строку, если она является допустимым целым числом, затем проанализирует ее и вернет true (как целое число), а out будет проанализированным целым числом.если анализ не удался, он вернет false.
Таким образом, вы будете уверены, что получите только целые числа.