我想弄清楚这段代码中的错误是什么:
private void button2_Click(object sender, EventArgs e)
{
int[] teams = new int[10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
temp = teams[2];
for (int i = 3; i <= 10; i++)
teams[i-1] = teams[i];
richTextBox1.Text = ("Round 1: "+teams[0]+","+teams[1]+" "+teams[2]+","+teams[9]+" "+teams[3]+","+teams[8]+" "+teams[4]+","+teams[7]+" "+teams[5]+","+teams[6]);
}
我没有在服务器资源管理器中收到任何错误,但是当我调试时程序崩溃并且我得到“IndexOutOfRangeException未处理”
输出应该是 回合:1,2 3,10 4,9 5,8 6,7 回合:1,3 4,2 5,10 6,9 7,8 回合:1,4 5,3 6,2 7,10 8,9 等等... 直到所有球队都相互比赛一次。第1组是固定的,而数组中的其余项目是迭代的。
答案 0 :(得分:8)
因为索引10在您的数组teams
中并不存在。索引从零开始,因此teams
的有效索引为0-9。你的循环从3变为10,所以你的最后一次迭代会抛出异常。