C#循环[索引超出范围]
我有一个这样的环C#循环[索引超出范围],c#,C#,我有一个这样的环 int numberofelements=20; for(int i=0;i<numberofelements;i++) { if(i==numberofelements) { break; } if(i==i+1)) {
int numberofelements=20;
for(int i=0;i<numberofelements;i++)
{
if(i==numberofelements)
{
break;
}
if(i==i+1))
{
//do some thing
}else
{
//do some thing else
}
}
int numberofelements=20;
对于(inti=0;i,似乎您认为循环对于20个元素是正确的
for(int i=0;i<numberofelements;i++)
由于我从不等于numberofelements,即20个元素,因此似乎您试图从一个包含少于20个元素的列表中获取一个元素,您将不得不显示更多代码,您在循环中使用i做什么
此外,您只需要else部分,因为其他部分永远不会为真:
“i”不能等于“i+1”,并且将永远不会等于numberofelements,因为您的循环限制(i
您可以通过以下方式访问所有元素:
for (int i = 0; i < list.Count; i++) // Loop through List with for
{
// do something with list[i]
}
for(int i=0;i
我认为部分问题在于第一个if语句永远不会被使用。for循环将在I等于numOfElements之前退出(除非在for循环中修改I)
所以你可以这样做:
if (i == (numOfElements - 1)) {
// do something
break;
}
这样就不会出现空指针错误。为什么不执行以下操作:
for (int i = 0; i < numberofelements - 1; i++)
{
// do something
}
// do something else with numberofelements - 1
for(int i=0;i
试试这个
int numberofelements=20;
for (int i = 0; i < numberofelements; i++)
{
if (i == numberofelements - 1)
{
Console.WriteLine("last element" + i);
break;
}
else
{
if (i == i + 1)
{
Console.WriteLine(i);
}
else
{
Console.WriteLine(i);
}
}
}
int numberofelements=20;
for(int i=0;i
我认为i==numberofelements-1
,也不会执行i==numberofelements
,因为你循环
你就不能执行我使用的i@DMan,但我有同样的问题,“i”不能等于“i+1”,确切地说是+1
int numberofelements=20;
for (int i = 0; i < numberofelements; i++)
{
if (i == numberofelements - 1)
{
Console.WriteLine("last element" + i);
break;
}
else
{
if (i == i + 1)
{
Console.WriteLine(i);
}
else
{
Console.WriteLine(i);
}
}
}