在Java中打印圣诞树任务使用完全相同的代码打印两个不同的结果
有人能帮我解决这个问题吗
我附上了两个密码。从我的比较来看,两者应该是相同的。其中一个打印几乎正常的圣诞树(代码2/结果代码2),另一个(代码1/结果代码1)只打印树的右侧。我不明白为什么会这样,怎么会这样
还有,有人能给我解释一下代码是如何工作的吗?我只懂一点点。仍在学习,我复制了代码2,并尝试用代码1手动复制
代码1:
public class XmasTree {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("How tall do you want it?");
int height = input.nextInt();
for (int i = 0; i < height; i++) {
for (int j = 0; j < height -i; j++);{
System.out.print(" ");
}
for (int k = 0; k <= i; k++) {
System.out.print("* ");
}
System.out.println();
}
for (int i = 0; i <= height; i++){
for (int j = 0; j <= height; j++){
System.out.print(" ");
}
for (int k = 1; k < 2; k++){
System.out.print("*");
}
System.out.println();
}
input.close();
}
}
代码2:
public class XmasTree2 {
public static void main(String[]args){
Scanner input = new Scanner(System.in);
System.out.println("How tall do you want your tree to be?");
int height = input.nextInt();
for(int i = 0; i < height; i++){
for(int j = 0; j < height - i; j++){
System.out.print(" ");
}
for(int k = 0; k <= i; k++){
System.out.print("* ");
}
System.out.println();
}
for(int i = 0; i <= height; i++){
for(int j = 0; j <= height; j++){
System.out.print(" ");
}
for(int k = 1; k < 2; k++){
System.out.print("*");
}
System.out.println();
}
input.close();
}
}
结果代码1:
你想要多高? 四,
*
* *
* * *
* * * *
*
*
*
*
*
结果代码2:
你希望你的树有多高? 四,
*
* *
* * *
* * * *
*
*
*
*
*
# 1 楼答案
在第二个
for
-loop之后有一个额外的;
你想知道我是怎么发现的吗?我把你的代码放在一个IDE中,让它为我自动格式化。这样一来,错误就显而易见了
这就是为什么正确的格式如此重要