我的程序一直显示索引不足。例如,变量arreglo
。下面,我想将矩阵特定的索引保存在数组中,然后在textBox中打印该数组。
我很确定这是菜鸟的错误...
代码
int [] arreglo = new int[77];
int [,] trans = new int [11,7];
int j=0;
int renglon = 0;
var cadena1 = txtBCadena1.Text.Select(n => Convert.ToInt32(n)).ToArray();
for (int i = 0; i < trans.Length;)
{
arreglo[i] = trans[renglon, cadena1[j]];
j++;
renglon = trans[arreglo[i], cadena1[j]];
i++;
if((arreglo[i] == 9) || (arreglo[i] == 8) || (arreglo[i] == 7))
{
break;
}
else
{
MessageBox.Show("CADENA NO VÁLIDA");
}
}
txtBCadena1Resp.Text = Convert.ToString(arreglo);
答案 0 :(得分:1)
您在数组arreglo上的索引超出错误(按照您的说明),原因是索引i> =77。您已定义了一个数组arreglo,其值从i = 0到76(77个值)。 似乎错误是从行中传来的:
i++;
if((arreglo[i] == 9) || (arreglo[i] == 8) || (arreglo[i] == 7))
在两行之间放置一个“ Console.WriteLine(i)”以检查i的值是否> = 77
我不知道为什么要使用i ++,因为循环会自动增加i的值。