Reputation: 13
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.
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.
Upvotes: 0
Views: 18255
Reputation: 11
use
for(int i = 1; i <= h; i++)
{
Your Code.
}
Note: This is the rule for FOR LOOP for(initiation; condition; statement)
Upvotes: 0
Reputation: 1807
In each for loop you do this:
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)
Upvotes: 1
Reputation: 346
Needs to be
for(int i = 1; i <= h - 1; i++) {}
and so forth for the rest of the for loops
Upvotes: 2
Reputation: 31245
Replace
for(int i; i = 1; i <= h; i++)
With :
for(int i = 1; i <= h; i++)
Upvotes: 4