2011-10-02 3 views
2

저는 C#에서 기본 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에서 경우 999

해서는 안 0-15, 0-999 직장에서 루프?

답변

10

그렇지 않습니다. 999는 배열의 길이입니다. 따라서 0-998에서 시작하여 반복 할 때 "작거나 같음"보다는 "미만"을 사용하는 습관이 있어야합니다. 그러면 오른쪽에서 나오는 경향이 있습니다.

+0

오, 그렇다면 15 개 요소가 아니라 0-15 개입니까? 고마워, 이제 이해가가. –

7

요소가 15 개 및 999 개이지만 배열의 인덱스가 0이므로 0-14 및 0-998에서 각각 실행됩니다.