C# 在循环中输入单个项目后,总金额始终显示在每个项目后。但是用户必须为每个购买的项目指定类别和单个项目。如果要在chocolate()和sandwich()方法中添加循环,则需要将total传递给这些方法中的每一个,在其中使用它,然后将它从要分配给主循环中的t
C# 在循环中输入单个项目后,总金额始终显示在每个项目后。但是用户必须为每个购买的项目指定类别和单个项目。如果要在chocolate()和sandwich()方法中添加循环,则需要将total传递给这些方法中的每一个,在其中使用它,然后将它从要分配给主循环中的t,c#,global-variables,cumulative-sum,C#,Global Variables,Cumulative Sum,在循环中输入单个项目后,总金额始终显示在每个项目后。但是用户必须为每个购买的项目指定类别和单个项目。如果要在chocolate()和sandwich()方法中添加循环,则需要将total传递给这些方法中的每一个,在其中使用它,然后将它从要分配给主循环中的total局部变量的方法返回。@Matt:没有清晰完整的规范,不可能确切知道你在这里需要什么。事实上,在这样一个简单的家庭作业式问题中,只要有static字段,并在您想要的每个方法中使用它,就没有那么糟糕了。这与将所有逻辑封装在一个可实例化对象中
在循环中输入单个项目后,总金额始终显示在每个项目后。但是用户必须为每个购买的项目指定类别和单个项目。如果要在
chocolate()
和sandwich()
方法中添加循环,则需要将total
传递给这些方法中的每一个,在其中使用它,然后将它从要分配给主循环中的total
局部变量的方法返回。@Matt:没有清晰完整的规范,不可能确切知道你在这里需要什么。事实上,在这样一个简单的家庭作业式问题中,只要有static
字段,并在您想要的每个方法中使用它,就没有那么糟糕了。这与将所有逻辑封装在一个可实例化对象中没有太大区别,使用一个非静态字段,您可以在其中保存运行总数,在更复杂的场景中,这被认为是合理可接受的。是的,这就是我要问的。如何将“total”变量传递到每个方法中?我在这里学到了很多。目前,该应用程序按我所希望的方式运行,只是我希望始终显示运行总数。@Matt:“如何将'total'变量传递到每个方法?”--对不起,我不知道你的意思。你是说你根本不知道参数是如何工作的?如果是这样,我建议您阅读语言文档:。如果你需要其他类型的帮助,恐怕你需要更具体一些。很难让我明白,但至少有一些道理。非常感谢。
class Program
{
static double total = 0;
static void Main(string[] args)
{
string choice = "y";
while (choice == "y")
{
Console.WriteLine("Main Menu:\nChocolate\nSandwiches");
int menu = int.Parse(Console.ReadLine());
switch (menu)
{
case 1:
chocolate();
break;
case 2:
sandwich();
break;
}
}
}
static void chocolate()
{
int menu = 0;
//double cost = quant * price;
Console.WriteLine("Chocolate bar menu:\nMars bar\nSnickers\nTwix\nMilky Bar\nTurkish Delight");
int chocBar = int.Parse(Console.ReadLine());
Console.Clear();
Console.WriteLine("Quantity");
double quant = double.Parse(Console.ReadLine());
Console.Clear();
if (chocBar == 1)
{
Console.Clear();
double costMars = quant * 0.5;
total = total + costMars;
Console.WriteLine("current total: £" + total.ToString("0.00"));
Console.WriteLine("Press 1 for main menu");
menu = int.Parse(Console.ReadLine());
if (menu == 1)
{
chocolate();
}
else
{
}
}
if (chocBar == 2)
{
double costSnick = quant * 0.8;
total = total + costSnick;
Console.WriteLine("current total: £" + total.ToString("0.00"));
Console.WriteLine("Press 1 for main menu");
menu = int.Parse(Console.ReadLine());
if (menu == 1)
{
chocolate();
}
else
{
}
}
Console.ReadKey();
class Program
{
static void Main(string[] args)
{
double total = 0;
string choice = "y";
while (choice == "y")
{
Console.WriteLine("Main Menu:\nChocolate\nSandwiches");
int menu = int.Parse(Console.ReadLine());
switch (menu)
{
case 1:
total += chocolate();
break;
case 2:
total += sandwich();
break;
}
Console.WriteLine("current total: £" + total.ToString("0.00"));
Console.WriteLine("Press 1 for main menu");
menu = int.Parse(Console.ReadLine());
}
}
static double chocolate()
{
int menu = 0;
Console.WriteLine("Chocolate bar menu:\nMars bar\nSnickers\nTwix\nMilky Bar\nTurkish Delight");
int chocBar = int.Parse(Console.ReadLine());
Console.Clear();
Console.WriteLine("Quantity");
double quant = double.Parse(Console.ReadLine());
Console.Clear();
double cost;
switch (chocBar)
{
case 1: // Mars
cost = 0.5;
break;
case 2: // Snickers
cost = 0.8;
break;
default:
throw new Exception("Invalid user input");
}
Console.Clear();
return quant * cost;
}
}