2015-08-30 47 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 
}