C# 掷骰子游戏“;索引超出了范围”;

C# 掷骰子游戏“;索引超出了范围”;,c#,winforms,C#,Winforms,作为学校的一项作业,我必须制作一个Windows窗体应用程序,它抛出6000次“骰子”,并告诉我它抛出1、2、3、4、5和6的次数 这是我现在的代码,但我不工作。我得到的错误是: System.IndexOutOfRangeException:“索引超出了数组的边界。” Random rand=new Random(); int[]随机数=新的int[6]; 私有void btnBereken_单击(对象发送者,事件参数e) { 对于(int i=0;i

作为学校的一项作业,我必须制作一个Windows窗体应用程序,它抛出6000次“骰子”,并告诉我它抛出1、2、3、4、5和6的次数

这是我现在的代码,但我不工作。我得到的错误是:

System.IndexOutOfRangeException:“索引超出了数组的边界。”

Random rand=new Random();
int[]随机数=新的int[6];
私有void btnBereken_单击(对象发送者,事件参数e)
{
对于(int i=0;i<6000;i++)
{
WriteLine(“元素”+i+”是“+(随机数[i]=rand.Next(1,7));
整数=rand.Next(1,7);
随机数[数字-1]++;
if(随机数[i]==1)
{
随机数[1]+=1;
}
else if(随机数[i]==2)
{
随机数[2]+=1;
}
else if(随机数[i]==3)
{
随机数[3]+=1;
}
else if(随机数[i]==4)
{
随机数[4]+=1;
}
else if(随机数[i]==5)
{
随机数[5]+=1;
}
else if(随机数[i]==6)
{
随机数[6]+=1;
}
}
对于(int n=1;n<7;n++){
lblThrow.Text+=“值”+n+“是”+randomNumbers[n].ToString()+“抛出次数”+“\n”;
}
}

您会得到一个
系统。IndexAutoFrangeException
,因为您将
随机数初始化为6个元素的数组,迭代器迭代到6000,正如@LarsTech在评论中所说的,您不需要If块:

Random rand = new Random();
int[] randomNumbers = new int[6];

private void btnBereken_Click(object sender, EventArgs e)
{
    for (int i = 0; i < 6000; i++)
    {
        randomNumbers[rand.Next(1, 7) - 1]++;
    }

    for (int i = 0; i < randomNumbers.Length; i++)
    {

        lblThrow.Text += String.Format("{0}Number {1} is rolled {2} times{3}", 
                         Environment.NewLine, i + 1, randomNumbers[i], 
                         Environment.NewLine);
    }
}
Random rand=new Random();
int[]随机数=新的int[6];
私有void btnBereken_单击(对象发送者,事件参数e)
{
对于(int i=0;i<6000;i++)
{
随机数[rand.Next(1,7)-1]+;
}
for(int i=0;i
因为您将随机数初始化为6个元素的数组,并且迭代器迭代到6000个元素,所以是否需要该If块?您已经增加了掷骰。请注意最后一个条件,它将尝试相同的异常:
randomNumbers[6]
Select case将比
If
block干净得多欢迎使用StackOverflow。如果您能快速学会如何调试程序代码,它会有很大帮助。
Random rand = new Random();
int[] randomNumbers = new int[6];

private void btnBereken_Click(object sender, EventArgs e)
{
    for (int i = 0; i < 6000; i++)
    {
        randomNumbers[rand.Next(1, 7) - 1]++;
    }

    for (int i = 0; i < randomNumbers.Length; i++)
    {

        lblThrow.Text += String.Format("{0}Number {1} is rolled {2} times{3}", 
                         Environment.NewLine, i + 1, randomNumbers[i], 
                         Environment.NewLine);
    }
}