Java 编译器错误。For 循环不是语句

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/22180088/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-13 14:09:37  来源:igfitidea点击:

Java compiler error. For loop not a statement

javacompiler-errors

提问by Reeses

So I'm working on an assignment where we have to use nested for loops and pass parameters to create this ASCII picture of a tree. I can't for the life of me figure out what is wrong with it that it's not compiling.

所以我正在做一个作业,我们必须使用嵌套的 for 循环并传递参数来创建树的这个 ASCII 图片。我一生都无法弄清楚它没有编译有什么问题。

Here's the source:

这是来源:

public class Tree{

  public static void main(String [] args){

    drawTree(3,4);     
  }

  public static String drawTree(int n, int h){ //n is number of bodies, h is their height.

    for(int i; i = 1; i <= h; i++){ //Number of tree bodies to create
      drawSegment(n);
      }

//Trunk
    for(int i; i = 1; i <= h - 1; i++){ //Trunk spaces
      System.out.print (" ");    
    }

    System.out.print ("*"); //Trunk Body

    for (int i; i = 1; i <= h - 1; i++){ //Trunk end spaces
      System.out.print (" ");
    }
  }

//Leaves  
  public static String drawSegment(int k){ //Creates the tree's bodies 

    for(int i; i = 1; i <= k; i++){ //Number of lines  

      for(int s; s = 1; s <= k - 1; s++){ //Number of Spaces
    System.out.print (" ");      
      }

      for(int s; s <= (2 * i) - 1; s++){ //Number of Stars
    System.out.print ("*");
      }

      for(int s; s = 1; s <= k - 1; s++){ //Number of End Spaces
    System.out.println (" ");      
      }

     }
   }
}

These are the error's:

这些是错误的:

Tree.java:10: error: not a statement
    for(int i; i = 1; i <= h; i++){ //Number of tree bodies to create
                    ^
Tree.java:10: error: ')' expected
    for(int i; i = 1; i <= h; i++){ //Number of tree bodies to create
                        ^
Tree.java:10: error: ';' expected
    for(int i; i = 1; i <= h; i++){ //Number of tree bodies to create
                             ^
Tree.java:15: error: not a statement
    for(int i; i = 1; i <= h - 1; i++){ //Trunk spaces
                    ^
Tree.java:15: error: ')' expected
    for(int i; i = 1; i <= h - 1; i++){ //Trunk spaces
                            ^
Tree.java:15: error: ';' expected
    for(int i; i = 1; i <= h - 1; i++){ //Trunk spaces
                                 ^
Tree.java:21: error: not a statement
    for (int i; i = 1; i <= h - 1; i++){ //Trunk end spaces
                     ^
Tree.java:21: error: ')' expected
    for (int i; i = 1; i <= h - 1; i++){ //Trunk end spaces
                             ^
Tree.java:21: error: ';' expected
    for (int i; i = 1; i <= h - 1; i++){ //Trunk end spaces
                                  ^
Tree.java:28: error: not a statement
    for(int i; i = 1; i <= k; i++){ //Number of lines  
                    ^
Tree.java:28: error: ')' expected
    for(int i; i = 1; i <= k; i++){ //Number of lines  
                        ^
Tree.java:28: error: ';' expected
    for(int i; i = 1; i <= k; i++){ //Number of lines  
                             ^
Tree.java:30: error: not a statement
      for(int s; s = 1; s <= k - 1; s++){ //Number of Spaces
                      ^
Tree.java:30: error: ')' expected
      for(int s; s = 1; s <= k - 1; s++){ //Number of Spaces
                              ^
Tree.java:30: error: ';' expected
      for(int s; s = 1; s <= k - 1; s++){ //Number of Spaces
                                   ^
Tree.java:38: error: not a statement
      for(int s; s = 1; s <= k - 1; s++){ //Number of End Spaces
                      ^
Tree.java:38: error: ')' expected
      for(int s; s = 1; s <= k - 1; s++){ //Number of End Spaces
                              ^
Tree.java:38: error: ';' expected
      for(int s; s = 1; s <= k - 1; s++){ //Number of End Spaces
                                   ^
18 errors

I think it has something to do with the for loop in the first method drawTreenot being able to find h. But I don't know how to fix it.

我认为这与第一种方法中的 for 循环drawTree无法找到 h 有关。但我不知道如何修复它。

采纳答案by Arnaud Denoyelle

Replace

代替

for(int i; i = 1; i <= h; i++)

With :

和 :

for(int i = 1; i <= h; i++)

回答by Stephen Corcoran

Needs to be

需要是

for(int i = 1; i <= h - 1; i++) {}

and so forth for the rest of the for loops

等等 for 循环的其余部分

回答by Henrik

In each for loop you do this:

在每个 for 循环中,您执行以下操作:

for(int i; i = 1; i <= h; i++){ 

but it should be:

但它应该是:

for(int i = 1; i <= h; i++){ 

With only two ; ;

只有两个;;

for(init;condition;statement)