如何从交换机返回? C#
How to go back from a switch? c#
添加制作人员名单后,我希望它返回以再次显示主菜单。这样做的方法是什么?还有更简单的方法吗?我对编程不是很有经验。
Console.WriteLine("-------------------------------");
Console.WriteLine("");
Console.WriteLine(" VENDING MACHINIES LTD");
Console.WriteLine("");
Console.WriteLine("-------------------------------");
Console.WriteLine(" Main Menu");
Console.WriteLine("");
Console.WriteLine("1 - Add Credits (current credits= 0.00)");
Console.WriteLine("2 - Select product/s");
Console.WriteLine("3 - Exit");
Cons
您可以使用 while(true) 实现菜单的永恒循环,使用 return 退出您的应用程序
Console.WriteLine("-------------------------------");
Console.WriteLine("");
Console.WriteLine(" VENDING MACHINIES LTD");
Console.WriteLine("");
Console.WriteLine("-------------------------------");
while(true)
{
Console.WriteLine(" Main Menu");
Console.WriteLine("");
Console.WriteLine("1 - Add Credits (current credits= 0.00)");
Console.WriteLine("2 - Select product/s");
Console.WriteLine("3 - Exit");
Console.WriteLine("");
Console.Write("Please Enter A Number: ");
choice = Convert.ToInt32(Console.ReadLine());
while (choice < 1 || choice > 3)
{
Console.Write("Incorrect option. Please Re-Enter: ");
choice = Convert.ToInt32(Console.ReadLine());
}
switch (choice)
{
case 1:
Console.Write("How Many Credits Would You Like To Add? ");
credits = Convert.ToInt32(Console.ReadLine());
Console.Write("You Now Have {0} Credits", credits);
Console.WriteLine("");
Console.Write("Press return to go back to the main menu");
Console.ReadLine();
break;
case 2:
Console.WriteLine();
break;
case 3:
Console.WriteLine("Bye-bye");
return;
}
}
试试这个代码:
var returnBack = true;
do
{
Console.WriteLine("-------------------------------");
Console.WriteLine("");
Console.WriteLine(" VENDING MACHINIES LTD");
Console.WriteLine("");
Console.WriteLine("-------------------------------");
Console.WriteLine(" Main Menu");
Console.WriteLine("");
Console.WriteLine("1 - Add Credits (current credits= 0.00)");
Console.WriteLine("2 - Select product/s");
Console.WriteLine("3 - Exit");
Console.WriteLine("");
Console.Write("Please Enter A Number: ");
choice = Convert.ToInt32(Console.ReadLine());
while (choice < 1 || choice > 3)
{
Console.Write("Incorrect option. Please Re-Enter: ");
choice = Convert.ToInt32(Console.ReadLine());
}
switch (choice)
{
case 1:
Console.Write("How Many Credits Would You Like To Add? ");
credits = Convert.ToInt32(Console.ReadLine());
Console.Write("You Now Have {0} Credits", credits);
Console.WriteLine("");
Console.Write("Press return to go back to the main menu");
Console.ReadLine();
break;
case 2:
Console.WriteLine();
break;
case 3:
returnBack=false;
break;
}
} while (returnBack);
您可以使用递归方法,我还建议提取“菜单”控制台写入行。请查看以下内容:
static void Main(string[] args)
{
DisplayMenu();
var choice = Convert.ToInt32(Console.ReadLine());
// Final response
choice = DisplayMenu(choice);
}
public static void DisplayMenu()
{
Console.WriteLine(" Main Menu");
Console.WriteLine("");
Console.WriteLine("1 - Add Credits (current credits= 0.00)");
Console.WriteLine("2 - Select product/s");
Console.WriteLine("3 - Exit");
Console.WriteLine("");
Console.Write("Please Enter A Number: ");
}
// Recursive overload
public static int DisplayMenu(int choice)
{
// If invalid input
if (choice<1 || choice>3)
{
Console.Write("Incorrect option. Please Re-Enter: ");
Console.WriteLine();
DisplayMenu();
return DisplayMenu(Convert.ToInt32(Console.ReadLine()));
}
// If valid show one more time the menu
DisplayMenu();
return Convert.ToInt32(Console.ReadLine());
}
添加制作人员名单后,我希望它返回以再次显示主菜单。这样做的方法是什么?还有更简单的方法吗?我对编程不是很有经验。
Console.WriteLine("-------------------------------");
Console.WriteLine("");
Console.WriteLine(" VENDING MACHINIES LTD");
Console.WriteLine("");
Console.WriteLine("-------------------------------");
Console.WriteLine(" Main Menu");
Console.WriteLine("");
Console.WriteLine("1 - Add Credits (current credits= 0.00)");
Console.WriteLine("2 - Select product/s");
Console.WriteLine("3 - Exit");
Cons
您可以使用 while(true) 实现菜单的永恒循环,使用 return 退出您的应用程序
Console.WriteLine("-------------------------------");
Console.WriteLine("");
Console.WriteLine(" VENDING MACHINIES LTD");
Console.WriteLine("");
Console.WriteLine("-------------------------------");
while(true)
{
Console.WriteLine(" Main Menu");
Console.WriteLine("");
Console.WriteLine("1 - Add Credits (current credits= 0.00)");
Console.WriteLine("2 - Select product/s");
Console.WriteLine("3 - Exit");
Console.WriteLine("");
Console.Write("Please Enter A Number: ");
choice = Convert.ToInt32(Console.ReadLine());
while (choice < 1 || choice > 3)
{
Console.Write("Incorrect option. Please Re-Enter: ");
choice = Convert.ToInt32(Console.ReadLine());
}
switch (choice)
{
case 1:
Console.Write("How Many Credits Would You Like To Add? ");
credits = Convert.ToInt32(Console.ReadLine());
Console.Write("You Now Have {0} Credits", credits);
Console.WriteLine("");
Console.Write("Press return to go back to the main menu");
Console.ReadLine();
break;
case 2:
Console.WriteLine();
break;
case 3:
Console.WriteLine("Bye-bye");
return;
}
}
试试这个代码:
var returnBack = true;
do
{
Console.WriteLine("-------------------------------");
Console.WriteLine("");
Console.WriteLine(" VENDING MACHINIES LTD");
Console.WriteLine("");
Console.WriteLine("-------------------------------");
Console.WriteLine(" Main Menu");
Console.WriteLine("");
Console.WriteLine("1 - Add Credits (current credits= 0.00)");
Console.WriteLine("2 - Select product/s");
Console.WriteLine("3 - Exit");
Console.WriteLine("");
Console.Write("Please Enter A Number: ");
choice = Convert.ToInt32(Console.ReadLine());
while (choice < 1 || choice > 3)
{
Console.Write("Incorrect option. Please Re-Enter: ");
choice = Convert.ToInt32(Console.ReadLine());
}
switch (choice)
{
case 1:
Console.Write("How Many Credits Would You Like To Add? ");
credits = Convert.ToInt32(Console.ReadLine());
Console.Write("You Now Have {0} Credits", credits);
Console.WriteLine("");
Console.Write("Press return to go back to the main menu");
Console.ReadLine();
break;
case 2:
Console.WriteLine();
break;
case 3:
returnBack=false;
break;
}
} while (returnBack);
您可以使用递归方法,我还建议提取“菜单”控制台写入行。请查看以下内容:
static void Main(string[] args)
{
DisplayMenu();
var choice = Convert.ToInt32(Console.ReadLine());
// Final response
choice = DisplayMenu(choice);
}
public static void DisplayMenu()
{
Console.WriteLine(" Main Menu");
Console.WriteLine("");
Console.WriteLine("1 - Add Credits (current credits= 0.00)");
Console.WriteLine("2 - Select product/s");
Console.WriteLine("3 - Exit");
Console.WriteLine("");
Console.Write("Please Enter A Number: ");
}
// Recursive overload
public static int DisplayMenu(int choice)
{
// If invalid input
if (choice<1 || choice>3)
{
Console.Write("Incorrect option. Please Re-Enter: ");
Console.WriteLine();
DisplayMenu();
return DisplayMenu(Convert.ToInt32(Console.ReadLine()));
}
// If valid show one more time the menu
DisplayMenu();
return Convert.ToInt32(Console.ReadLine());
}