#c# #.net #arrays #loops
#c# #.net #массивы #циклы
Вопрос:
Я делаю базовый 2D-массив на C #, и у меня небольшая путаница.
Я намного больше привык работать с массивами на основе 1, поэтому массивы на основе 0 путают мою голову, если вы понимаете, что я имею в виду.
blocks = new Block[15, 999];
for (int x = 0; x <= 15; x )
{
for (int y = 0; y <= 999; y )
{
blocks[x, y] = new Dirt(terrainTexture, new Vector2(x * 16, y * 16));
}
}
Значит, это говорит мне, что я выхожу за пределы массива?
Если массив из
0-15, 0-999
Разве цикл с 0-15, 0-999 не должен работать?
Ответ №1:
Это не так. 999 — это длина массива. Таким образом, это с 0-998, и когда вы перебираете его, у вас должна быть привычка использовать «меньше», а не «меньше или равно» — тогда все будет выглядеть правильно.
Комментарии:
1. О, так это 15 элементов, а не 0-15? Спасибо, теперь это имеет смысл.
Ответ №2:
У вас есть 15 и 999 элементов, но поскольку массивы проиндексированы на 0, это означает, что они выполняются с 0-14 и 0-998 соответственно.