如何制作一个将其值保持在开关盒外的运行总计?

时间:2016-07-24 01:15:29

标签: c# random

我正在写一个多面体模具滚动程序。用户可以输入要掷骰子的类型和骰子的数量。它运作良好,但我不确定如何将总数加起来然后打印出来 但是,它成功地打印了每个单独的卷筒,因此我知道它可以生成由用户确定的适当范围内的随机数。我想在程序结束时打印总数,但它不起作用 程序离开开关盒后,变量的值是否消失?

static void Main(string[] args)
{
    int typeOfDice = Convert.ToInt32(Console.ReadLine());
    Random rnd = new Random();
    int numberOfDice = Convert.ToInt32(Console.ReadLine());
    // Assigns random generator parameters to user's choice of dice type
    switch (typeOfDice)
    {

        case 4:
            for(int count = 0; count < numberOfDice; count++)
            {
                int currentRoll = rnd.Next(typeOfDice);
                int total = currentRoll + 1;
                Console.WriteLine(currentRoll + 1);
                Console.WriteLine(" ");
             }
             break;
            //....
       case 100:
            for (int count = 0; count < numberOfDice; count++)
            {
                int currentRoll = rnd.Next(typeOfDice);
                int total = currentRoll + 1;
                Console.WriteLine(currentRoll + 1);
            }
            break;
       }
    }
}

2 个答案:

答案 0 :(得分:1)

在switch语句之前定义变量total,它将起作用。因为你在for循环中声明它,所以一旦for循环结束它就会超出范围。

答案 1 :(得分:0)

您的代码存在两个问题。

  1. 您正在for循环中定义变量total。如果您希望在切换后可以访问它,请在切换之前定义它。
  2. 如果总数是所有骰子卷的总和,则应该使用每个骰子卷进行递增,而不是设置它。即 total += currentRoll + 1代替total = currentRoll + 1