A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. public class Demo01 {
  2.         public static void main(String[] args) {
  3.                 for (int x = 1; x <= 6; x++) {
  4.                         for (int y = 6; y > x; y--) {
  5.                                 System.out.print(" ");
  6.                         }
  7.                         for (int i = 1; i <= x; i++) {
  8.                                 System.out.print("*" + " ");
  9.                         }
  10.                         System.out.println();
  11.                 }
  12.                 for (int i = 1; i < 6; i++) {
  13.                         for (int j = 1; j <= i ; j++) {
  14.                                 System.out.print(" ");
  15.                         }
  16.                         for (int j = 5; j >= i; j--) {
  17.                                 System.out.print("*" + " ");
  18.                         }
  19.                         System.out.println();
  20.                 }
  21.         }
  22. }
复制代码
    *
    * *
   * * *
  * * * *
* * * * *
* * * * * *
* * * * *
  * * * *
   * * *
    * *
     *
以上是打印结果,
那么我来说说我是怎么想的, 另也请大家一起来玩玩看
首先我把菱形看成2段,上半段为6行,下半段为5行(没问题吧?)
在上半段代码中,外部for loop控制着总行数,与'\n'的输出位置
上半段的两个嵌套for loop:
第一个for循环,控制打印的空格字符,因为总数为6颗星+6个换行符,所以需要打印出12/2-1个空格(总星星数的一半少一个,为什么少1个呢? 因为这个位置用来输出星星的)
第二个for循环控制输出星星与空格符的.
第一个for循环的判断语句,控制语句为什么这样设置?(第一行输出5个空格,第二行输出4个空格,第三行输出3个空格,第4行输出2个空格,正好与外部循环反着来,所以就把它的控制条件关联起来,就如代码所示)
同理,第二个for循环也是如此,只不过他输出的星星与外部循环的i的值是一致的,所以正相关就行;
下半段代码只需要反向思考就行了~~

祝大家学习进步,找到一份好工作.
我是java新手,不是出来秀,只是混混币换技术分的~   要自我测验第一步啊!


2 个回复

倒序浏览
精华之贴   
回复 使用道具 举报 1 0
2个方法的调用   一个正三角形  一个倒三角形
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马