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;
    }
}