Я столкнулся со странной проблемой, которую не могу решить, что бы я ни пытался. Может быть, я просто упускаю из виду нечто элементарное, но у меня полностью закончились идеи, поэтому я, безусловно, надеюсь, что кто-нибудь сможет мне помочь.
У меня есть цикл for, который не работает должным образом. Интересно, почти идентичный работает просто отлично.
Проблема в том, что он не останавливается (по-видимому), когда i
for (int i = GeneralVars.intStartAtLine; i < (GeneralVars.intEndAtLine + 1); i++)
{
for (int j = 0; j < 49; j++)
a++;
if (boolCheck == true)
{
for (int j = 0; j < 6; j++)
{
if (z[i].zahlen7[j].nummer != 0)
{
if ((z[i].zahlen7[j + 1].nummer - z[i].zahlen7[j].nummer) == 1)
{
//dosomestuff
}
}
}
if (z[i].zahlen7[0].nummer != 0)
{
if (a == b)
{
//do some stuff
}
}
}
else
{
for (int j = 0; j < 5; i++)
if ((z[i].zahlen[j + 1].nummer - z[i].zahlen[j].nummer) == 1)
{
//dosomestuff
}
if (a == b)
{
//dosomestuff
}
}
}
Итак, проблема возникает в цикле else, как уже упоминалось ранее, если быть точным, исключение IndexOutOfBounds возникает здесь
if ((z[i].zahlen[j + 1].nummer - z[i].zahlen[j].nummer) == 1)
Причина, по которой это происходит, в том, что здесь «я» - 3417, хотя этого не может быть? Я проверил переменные с различными точками останова, Genervars.intEndAtLine всегда равен 3416. i
if (i != 3417)
до и после цикла else, но он все еще входит в него, когда (по какой-либо причине) i = 3417.
Так что - хорошо - я полностью потерян здесь. Заранее благодарим за любую помощь, которую я получу.
Последнее примечание: я новичок здесь и не являюсь носителем английского языка, поэтому, если я допустил какие-либо серьезные ошибки, пожалуйста, прости меня: -)