在Java中使用for循环创建Shapes

时间:2018-04-07 11:38:47

标签: java for-loop nested-loops shapes

我是Java的新手,我需要使用for循环打印出形状。

1)

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

2)

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

我真的很感激你的帮助! 提前致谢!

1 个答案:

答案 0 :(得分:2)

要做到这一点,首先你需要能够描述模式。

如果你可以可靠地绘制" next"整数输入的形状,然后你知道模式。

然后你会想到模式的哪些部分是计数项目(例如3星,然后是空白)。识别出计数的项目后,您可以在该计数与输入的数字之间建立关系。

最后,对于每个计算的项目,你编写一个for循环,在它的块内,包含输出一个项目的代码。 for循环的控制结构应该确保计数运行的次数正确。

对于计数为1的每个项目,您可以省略for循环并直接打印该项目。

---示例 -

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

思考过程:

  1. 第一行是5个空格,然后是一个星。
  2. 第二行是4个空格,然后是3个星。
  3. 第三行是3个空格,然后是5个开始。
  4. 我看到一个模式,第一行是(5个空格 - 行号)

    for (int spaces = 0; spaces < 5 - line_number; spaces++) {
      print(" ");
    }
    
  5. 其他模式是(数星)1,3,5,7,9。

  6. 模式是差异3-1 = 2,5-3 = 2,7-5 = 2等
  7. 之一
  8. 我需要从一颗星开始,每行添加两颗星。

    for (int stars = 1; stars < 1 + 2 * line_number; stars++) {
       print("*");
    }
    
  9. 现在我需要一个循环线

    for (int line_number = 0; line_number < 5; line_number++) {
       print("\n");
    }
    
  10. 现在我把它们放在一起

    for (int line_number = 0; line_number < 5; line_number++) {
      for (int spaces = 0; spaces < 5 - line_number; spaces++) {
        print(" ");
      }
      for (int stars = 1; stars < 1 + 2 * line_number; stars++) {
        print("*");
      }
      print("\n");
    }