В моем коде у меня есть вложенный цикл, который не выполняет итерацию за исключением оператора if, который всегда возникает независимо от того, какое условие. Без выражения if часть кода цикла for, которая выполняет итерацию цикла, становится недоступной. Независимо от того, что я пробовал, мне не удалось заставить внутренний цикл повторить.Вложенная петля, не повторяющаяся
class Map
{
public int Width { get; set; }
public int Height { get; set; }
public Vector2[] positions = new Vector2[500*500];
private GroundVoxel[,] map = new GroundVoxel[500, 500];
private Vector2 voxelPosition = new Vector2(0,0);
private static int sizeX = 499, sizeY = 499, airLevel = 425;
private int positionX = 0, positionY = 0, vectorNumber = 0;
public Map()
{
}
public Vector2[] Initialize()
{
for (int i = 0; i <= sizeY; i++)
{
for (int j = 0; j <= sizeX; j++) <-- This does not iterate.
{
map[positionX, positionY] = new GroundVoxel(voxelPosition);
voxelPosition.X += 80;
positions[vectorNumber] = voxelPosition;
vectorNumber += 1;
if (j == sizeX) <-- This always executes even though j != sizeX.
{
break;
}
}
voxelPosition.Y += 80;
voxelPosition.X = 0;
}
return positions;
}
}
}
Пройдите через код. Убедитесь, что 'sizeX'> 0. Если ваш цикл никогда не повторяется, выполняется условие выхода из цикла, прежде чем он начнет повторять. – tnw
Положите точку прерывания на 'break;' и убедитесь, что значения j и sizeX - это то, что вы ожидаете (оба 499). – Cemafor