首页 > 解决方案 > 好吧,我本想制作一棵圣诞树,但它确实有效,但我试图了解我的第二个 for 循环的基础知识

问题描述

好吧,我做了我的圣诞树,但我试图找出为什么当数字达到 5>5 时 space>line 不会停止的逻辑,因为在那之后它将达到 4>6 和 3>7 使循环为假并停止去我相信。

public static void main(String[] args) 
{

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

我得到了这个是正确的,但是查看每个星号之前的空格而不是行空格。

         * 

        * * 

       * * * 

      * * * * 

     * * * * * 

    * * * * * * 

   * * * * * * * 

  * * * * * * * * 

 * * * * * * * * * 

* * * * * * * * * *

标签: javafor-loop

解决方案


“查看每个星号后的空格而不是行空格”,那是因为您正在打印:

System.out.print("* ");

您提到的代码与asterixs之后的空格无关,但与before无关:

for (int space=10; space>line;space--)

对于视觉示例,将该循环替换为:

for (int space=10; space>line;space--)
        {
            System.out.print("?");
        }

你会得到:

?????????*

????????* *

???????* * *

??????* * * *

?????* * * * *

????* * * * * *

???* * * * * * *

??* * * * * * * *

?* * * * * * * * *

* * * * * * * * * *

推荐阅读