C# 使用矩阵的IndexOutfrange异常
我的程序一直显示索引不足。例如,变量C# 使用矩阵的IndexOutfrange异常,c#,multidimensional-array,indexoutofrangeexception,C#,Multidimensional Array,Indexoutofrangeexception,我的程序一直显示索引不足。例如,变量arreglo。下面我想将特定于矩阵的索引保存在数组中,然后在文本框中打印该数组 我很确定这是新手犯的错误 代码 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 (in
arreglo
。下面我想将特定于矩阵的索引保存在数组中,然后在文本框中打印该数组
我很确定这是新手犯的错误
代码
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);
int[]arreglo=newint[77];
int[,]trans=新的int[11,7];
int j=0;
int-renglon=0;
var cadena1=txtBCadena1.Text.Select(n=>Convert.ToInt32(n)).ToArray();
对于(int i=0;i
数组arreglo的索引出错(按照您所说的),原因是索引i>=77。您已经定义了一个从i=0到76(77个值)的数组arreglo。
似乎从以下几行中出现了错误:
i++;
if((arreglo[i] == 9) || (arreglo[i] == 8) || (arreglo[i] == 7))
在两行之间放置一个“Console.WriteLine(i)”以检查i的值是否大于等于77
我不知道你为什么要做I++,因为你的循环会自动增加I的值。I++中的
用于(i…
循环看起来可疑…您好!您在哪一行有此异常?哪一行导致异常,以及异常发生时的索引是什么?i?我也怀疑cadena1
。它的值是什么?“新手错误”正在增加块内的循环变量。由于有一个条件是i
,这很好,但在循环体内增加i
,然后尝试在arreglo
数组中使用i
的值。因此当i
处于最大值时,基于for
条件,并在循环内增加它,它将大于arreglo
的最大索引。