繁体   English   中英

在Java中使用for循环时的变量范围-Eclipse /编译器错误?

[英]scope of variables when using for-loop in java - eclipse / compiler error?

我编写了以下代码:

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

当我编译此代码段时,出现一个错误,在for-Loop内的行中,eclipse抱怨'layer'是一个未知符号[... = sceneGraph.getLayer(layer);]并要我介绍字段/变量/ ...“层”。

但是使用此代码段时,它可以工作。

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

有人知道,我在第一个代码中缺少什么吗? 还是这可能是Eclipse / Java编译器的某种错误?

我在Win 7 64位家庭高级版和Eclipse Helios 64位(内部版本20100617-1415)上使用Java 6 JDK Update 20 64位

更改

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

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

虚假的分号表示for循环的主体为空。 以下{....}被解释为单独的语句。 当然,该layer不在范围之内。

for行后删除分号! 在您的示例中,括号的内容未循环,因此layer未定义...

这就是为什么月食有用的原因!

请删除分号“;” 从下面一行。

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

不需要声明;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM