簡體   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