C# 尝试填充二维数组时System.IndexOutOfRangeException
有人能告诉我为什么我从这个代码中收到一个C# 尝试填充二维数组时System.IndexOutOfRangeException,c#,arrays,C#,Arrays,有人能告诉我为什么我从这个代码中收到一个System.indexootfrangeexception char[,] matrix = new char[80, 18]; for (int i = 0; i < 80; i++) for (int j = 0; i < 18; j++) matrix[i, j] = '1'; char[,]矩阵=新字符[80,18]; 对于(int i=0;i
System.indexootfrangeexception
char[,] matrix = new char[80, 18];
for (int i = 0; i < 80; i++)
for (int j = 0; i < 18; j++)
matrix[i, j] = '1';
char[,]矩阵=新字符[80,18];
对于(int i=0;i<80;i++)
对于(int j=0;i<18;j++)
矩阵[i,j]=‘1’;
您正在检查第二个for循环中的i是否小于18
char[,] matrix = new char[80, 18];
for (int i = 0; i < 80; i++)
for (int j = 0; i < 18; j++) //<-- Right there.
matrix[i, j] = '1';
char[,]矩阵=新字符[80,18];
对于(int i=0;i<80;i++)
对于(int j=0;i<18;j++)/问题:在第二个for循环中,您使用变量i
而不是j
for (int i = 0; i < 80; i++)
for (int j = 0; i < 18; j++)
^^^ should be j
for(int i=0;i<80;i++)
对于(int j=0;i<18;j++)
^^^应该是j
试试这个:
for (int i = 0; i < 80; i++)
for (int j = 0; j < 18; j++)
for(int i=0;i<80;i++)
对于(int j=0;j<18;j++)
…因为您的输入有误
for(int j=0;i<18;j++)如果复制并粘贴for循环而不正确更改所有变量,则会发生这种情况。您错过了第二个循环中的i
。也应该把它改成j
,这不是为什么我们总是说:先使用调试器,然后复制:OMG,太尴尬了!很抱歉
for (int i = 0; i < 80; i++)
for (int j = 0; j < 18; j++)