2015-08-30 46 views
0

我試圖編譯無法編譯循環

public class ForwardLoop { 
    public static void main(String[] args) { 
     int firstNumber = 5; 
     int lastNumber = 45; 
     int hopValue = 5; 

     for(firstNumber; firstNumber <= lastNumber; firstNumber = firstNumber + hopValue) { 
      System.out.print(firstNumber); 
     } 
    } 
} 

但我最終在第9行得到一個錯誤,說明它不是一個聲明。

感謝您提前提供任何幫助。

回答

6

for循環語句的初始化必須是一個有效的語句。 firstNumber不是一個有效的陳述。你的情況,你可以有初始化爲空語句,因爲你之前已經分配了初始值:

for (; firstNumber <= lastNumber; firstNumber = firstNumber + hopValue) { 
    System.out.print(firstNumber); 
} 

或者你可以移動for循環內的聲明,但是這將其範圍僅限定於循環:

// You can also use the += operator 
for (int firstNumber = 5; firstNumber <= lastNumber; firstNumber += hopValue) { 
    System.out.print(firstNumber); 
} 
+2

好點,但'+ = hopValue'看起來更好,不是嗎? – Andrew

0

語法的for循環

for(initialization; condition; iteration) 
{ 
    //statements 
} 

,正如你在代碼中看到你不會被初始化firstNumber那麼WR在正確的語法ITE代碼如下:

for(firstNumber=5; firstNumber <= lastNumber; firstNumber = firstNumber + hopValue) 
{ 
     System.out.print(firstNumber); 
} 

初始化firstNumber在僅環,或者如果你之前初始化變量for循環然後繼續初始化空白所以這看起來像如下:

for(;condition; iteration) 
{ 
    // statements 
}