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
Java compiler error. For loop not a statement
提问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 drawTree
not 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)