【发布时间】:2016-12-10 20:42:09
【问题描述】:
我不想使用某种 goto 语句,但我希望用户在执行默认情况时返回主菜单。如何??我知道这是一个简单的问题,但肯定有很多新手遇到过非常相似的事情。
static void buycoffee()
{
Double price = 0;
int x = 0;
while (x == 0)
{
Console.WriteLine("Pick a coffee Size");
Console.WriteLine("1: Small");
Console.WriteLine("2: Medium");
Console.WriteLine("3: Large");
int Size = int.Parse(Console.ReadLine());
switch (Size)
{
case 1:
price += 1.20;
break;
case 2:
price += 1.70;
break;
case 3:
price += 2.10;
break;
default:
Console.WriteLine("This option does not exist");
///how to return to the main menu here
break;
}
Console.WriteLine("Would you like to buy more coffee?");
String Response = Console.ReadLine().ToUpper();
if (Response.StartsWith("Y"))
{
Console.Clear();
}
else
{
x += 1;
}
}
Console.WriteLine("The total bill comes to £{0}", price.ToString("0.00"));
}
}
【问题讨论】:
-
做类似
do { ... } while(!userInputValid);的事情。 -
您是否尝试过在默认 case 语句中使用
return而不是break? -
在switch语句结束后,你可以添加
if(price == 0) continue;这将跳转到循环的下一次迭代 -
@KMoussa 如果这个人已经买了一杯咖啡,那么这将不起作用,因为上一杯咖啡的价格将不为零。
-
为什么在 while 条件下使用整数 (x) 而不是布尔值?