圣诞树树干前的间距

时间:2019-05-08 19:50:59

标签: java for-loop

我有一个练习,必须打印圣诞树。

    public class ChristmasTree {
        public static void main(String[] args) {
            int size = 6;
            printChristmasTree(size);
    }



 public static void printChristmasTree(int size) {
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size - i; j++) {
                System.out.print(" ");
            }
            for (int j = 0; j < (2 * i + 1); j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        for (int k = 0; k < 1; k++) {
            System.out.print("**");
            System.out.println();
        }
        System.out.println();
    }

}

我得到的是:

      *
     ***
    *****
   *******
  *********
 ***********
**

我该如何解决?我应该如何更改此循环以将树干移动到树的中心?

2 个答案:

答案 0 :(得分:1)

更改

     for (int k = 0; k < 1; k++) {
        System.out.print("**");
        System.out.println();
     }

    for (int k = 0; k < size; k++) {
        System.out.print(" ");
    }
    System.out.print("**");

您需要循环以从尺寸中查找空格数,并将其相应地放置。调整循环变量k(如果略有偏离)。

答案 1 :(得分:0)

您说圣诞节树,所以我猜想您希望树干位于不同的行中。如果您想要的是这里的代码:

for (int k = 0; k < 2; k++) {
    for (int l = 0; l <= size; l++) {
        if (l != size)
            System.out.print(" ");
        else
            System.out.println("*");
    }
    System.out.println();
}

如果您要在同一行中,您就是:

    for (int l = 0; l <= size; l++) {
        if (l != size)
            System.out.print(" ");
        else
            System.out.print("**");
    }
    System.out.println();