【发布时间】:2012-12-29 05:50:29
【问题描述】:
我无法在循环中实现 Y/N 或 y/n。我设计它的方式是用户可以在循环中使用 Y 和 N 的大写和小写字母作为答案。顺便说一下,这是我的代码,但似乎无法使其工作:
do
{
Console.WriteLine("\nSelect additional topping/s\n");
Console.WriteLine("1 - Extra meat: 200");
Console.WriteLine("2 - Extra cheese: 100");
Console.WriteLine("3 - Extra veggies: 80\n");
int selectedTopping = Convert.ToInt32(Console.ReadLine());
switch (selectedTopping)
{
case 1:
pizza = new MeatToppings(pizza);
break;
case 2:
pizza = new CheeseToppings(pizza);
break;
case 3:
pizza = new VeggieToppings(pizza);
break;
default:
break;
}
Console.WriteLine("\nAdd more toppings? Y/N");
}
while ((Console.ReadLine() == "Y") || (Console.ReadLine() == "y"));
【问题讨论】:
-
您的
Pizza课程不应该有addToppings()方法或可公开访问的浇头列表吗?也许我今天没有喝足够的咖啡,但你的代码对我来说似乎没有意义。 -
请记住,每次调用
Console.ReadLine()时,程序都会等待用户写入内容并按回车键。你有两次,所以为了继续,用户必须首先输入 Y 并按 enter,然后输入 y 并按 enter。 Tilak 的回答提供了一种简单的方法(当然你也可以降低)。
标签: c# .net if-statement string-comparison toupper