行无法解析为变量

时间:2016-10-05 06:48:29

标签: java eclipse

public class Assignment1{ 
   public static void main(String[] args) {  
      final int MAX_ROWS = 5 ;   
      for(int row = 1; row<= MAX_ROWS; row++) ;  
      {for (int star = 1; star <= row ; star++); }

为什么eclipse告诉我'行无法解析为变量'(最后一行中的行)

6 个答案:

答案 0 :(得分:4)

 for(int row = 1; row<= MAX_ROWS; row++) ;

删除;之后

答案 1 :(得分:2)

因为第一个for循环结束时的分号正在杀死行变量的范围。

 for(int row = 1; row<= MAX_ROWS; row++) ; // <-- remove that ;

答案 2 :(得分:2)

那是因为

之后的半结肠
 public static void main(String[] args) {
 final int MAX_ROWS = 5 ; 
for(int row = 1; row<= MAX_ROWS; row++) ;
 {
for (int star = 1; star <= row ; star++); 
} 

半冒号导致行循环结束,因此if的范围已完成,因此row在第二个for循环中不可见。 删除分号,代码将起作用。

答案 3 :(得分:2)

在第一个;之后,您有一个冗余(读取:错误)分号(for)。这个分号终止了for的块,由于row仅在中定义了,因此您会在下一个块中收到错误。只需删除它,你就可以了:

public class Assignment1{ 
   public static void main(String[] args) {  
      final int MAX_ROWS = 5 ;   
      for (int row = 1; row<= MAX_ROWS; row++)
      // Semicolon removed here --------------^
      {
          for (int star = 1; star <= row ; star++); 
          // And you probably want to remove this ^
          // And have a sensible body in this loop too.
      }

答案 4 :(得分:1)

如果你仔细看看

for(int row = 1; row<= MAX_ROWS; row++) ; <--

等于

for(int row = 1; row<= MAX_ROWS; row++){
 }

额外的;导致在该行中立即关闭for循环上下文。因此行的上下文在该行结束。

删除;。它应该工作。

答案 5 :(得分:0)

public class Assignment1{ 
    public static void main(String[] args) {  
        final int MAX_ROWS = 5 ;   
        for(int row = 1; row<= MAX_ROWS; row++){  
           for (int star = 1; star <= row ; star++){
                      //Now insert some printing codes here
            }
        }
     }

您已经在for循环之后插入了分号,从而终止了该循环,因此只需删除该分号,您的代码就可以正常运行