область видимости переменных при использовании цикла for в Java - eclipse / compiler error? - PullRequest
0 голосов
/ 17 июля 2010

Я написал следующий код:

for(int layer = 0; layer <countLayers; layer++);
{
    List<Sprite> spritesInLayer = sceneGraph.getLayer(layer);
}

, когда я компилирую этот фрагмент, я получаю ошибку, что в строке внутри цикла for-Loop затмение жалуется, что «слой» неизвестенsymbol [... = sceneGraph.getLayer (layer);] и хочет, чтобы я представил поле / variable / ... 'layer'.

Но при использовании этого фрагмента он работает.

int layer = 0;
for(layer = 0; layer <countLayers; layer++);
{
    List<Sprite> spritesInLayer = sceneGraph.getLayer(layer);
}

кто-нибудь знает, чего мне не хватает в первом коде?Или это может быть какая-то ошибка eclipse / java compiler?

Я использую Java 6 JDK Update 20 64 bit на Win 7 64-bit Home Premium и Eclipse Helios 64-bit (сборка 20100617-1415)

Ответы [ 3 ]

4 голосов
/ 17 июля 2010

Изменение

for(int layer = 0; layer <countLayers; layer++);

до

for(int layer = 0; layer <countLayers; layer++)

Ложная точка с запятой означает, что цикл for имеет пустое тело. Следующее {....} интерпретируется как отдельное утверждение. И, конечно же, layer выходит за рамки этого блока.

2 голосов
/ 17 июля 2010

удалить точку с запятой после строки for! Содержимое фигурных скобок в вашем примере не зациклено, поэтому layer не определено ...

Вот почему затмение полезно!

1 голос
/ 17 июля 2010

Пожалуйста, удалите точку с запятой ";" со следующей строки.

для (int layer = 0; layer

для выписки не требуется;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...