#c# #function #switch-statement
#c# #функция #оператор переключения
Вопрос:
Я должен создать функцию для возврата выбранного пункта меню, а затем switch
инструкцию, показывающую, какая клавиша нажата, но у меня проблемы с функциональной частью.
class Program
{
static void displayMainMenu()
{
string title = "Old Yeller Pet Store";
Console.WriteLine("nn");
Console.WriteLine(String.Format("{0," ((Console.WindowWidth /2) (title.Length / 2 )) "}", title));
Console.WriteLine("n");
title = "Main Menu";
Console.WriteLine("nn");
Console.WriteLine(String.Format("{0," ((Console.WindowWidth /2) (title.Length / 2 )) "}", title));
Console.WriteLine("n");
string line = "1. Buy a Pet";
Console.WriteLine(line.PadLeft(line.Length 1 50));
string line2 = "2. Buy Food";
Console.WriteLine(line2.PadLeft(line2.Length 1 50));
string line3 = "3. File OPs";
Console.WriteLine(line3.PadLeft(line3.Length 1 50));
string line4 = "4. Manager";
Console.WriteLine(line4.PadLeft(line4.Length 1 50));
string line5 = "5. Quit";
Console.WriteLine(line5.PadLeft(line5.Length 1 50));
}
static void getChoice()
{
Console.WriteLine("Please input which option you choose to use");
}
public static void Main(string[] args)
{
displayMainMenu();
Console.ReadKey();
}
}
}
Ответ №1:
Что вам следует сделать, так это изменить метод getChoice, чтобы возвращать строку, которая будет выбранным параметром. И внутри метода getChoice напишите консоль.Прочитайте строку и поместите значение в переменную и верните переменную. Таким образом, вы вызываете функцию getChoice после displayMenu и получаете значение.
Я бы предоставил код сам, но поскольку это скорее домашнее задание, я думаю, вам будет лучше понять это и попытаться сделать это самостоятельно с помощью этой идеи :)!
Надеюсь, это поможет!
Ответ №2:
Рассмотрим эту Консоль.ReadKey() будет ждать, пока вы нажмете клавишу, чтобы продолжить. После того, как вы это сделаете, откроется консоль свойств.ReadKey().Клавиша будет содержать значение клавиши, нажатой Таким образом, в этом случае…
var key = Console.ReadKey().Key;
switch (key) {
case ConsoleKey.D1:
Console.WriteLine("You pressed 1");
break;
case ConsoleKey.D2:
Console.WriteLine("You pressed 2");
break;
//etc...//
default:
Console.WriteLine("You pressed something else");
break;
}
Ответ №3:
Итак, я чувствую, что это прогресс, но я могу ошибаться? Заменит ли оператор Switch оператор If в моей функции getChoice?
class Program
{
static void displayMainMenu()
{
string title = "Old Yeller Pet Store";
Console.WriteLine("nn");
Console.WriteLine(String.Format("{0," ((Console.WindowWidth /2) (title.Length / 2 )) "}", title));
Console.WriteLine("n");
title = "Main Menu";
Console.WriteLine("nn");
Console.WriteLine(String.Format("{0," ((Console.WindowWidth /2) (title.Length / 2 )) "}", title));
Console.WriteLine("n");
string line = "1. Buy a Pet";
Console.WriteLine(line.PadLeft(line.Length 1 50));
string line2 = "2. Buy Food";
Console.WriteLine(line2.PadLeft(line2.Length 1 50));
string line3 = "3. File OPs";
Console.WriteLine(line3.PadLeft(line3.Length 1 50));
string line4 = "4. Manager";
Console.WriteLine(line4.PadLeft(line4.Length 1 50));
string line5 = "5. Quit";
Console.WriteLine(line5.PadLeft(line5.Length 1 50));
}
static void getChoice()
{
string option;
int choice;
Console.WriteLine("Please input which number option you choose to use");
option = Console.ReadLine();
choice = Convert.ToInt32(option);
if (choice == 1)
{
Console.Write("Lipsum");
//code to open Buy a Pet menu
}
}
public static void Main(string[] args)
{
displayMainMenu ();
getChoice();
Console.ReadKey();
}
}