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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨千里 中级黑马   /  2012-9-1 23:30  /  1561 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 冰舞世界 于 2012-9-2 00:48 编辑

今天刚刚看完循环,把9*9打了出来了,找了个练习题,想加强一下今天的学习成果
打印一个
           *
        *   *
      *       *
     *         *
      *       *
        *   *
          *
这个菱形我不知道该怎么打印出来?
思路详解,谢谢

8 个回复

倒序浏览
不要意思 顶端的那个* 号打歪了
     *
    *     *
  *          *
*               *
  *          *
     *    *
        *
回复 使用道具 举报
你先看看能不能理解,不能理解在问我
class Tu
{
        public static void main(String[] args)
        {
                 for(int i = 0;i < 5;i++)
             {
                        for(int j = i;j < 4;j++)
                        {
                                System.out.print(" ");
                        }
       
                        System.out.print("*");

                        for (int y=2*i-1;y>0;y-- )
                        {
                                System.out.print(" ");
                        }
                        if(i!=0)System.out.print("*");
                        System.out.println();
                       
                }

                for (int m = 1;m <= 4 ;m++ )
                {   
                        for (int x = 1;x <= m ;x++ )
                        {
                                System.out.print(" ");
                        }
               
                        System.out.print("*");
                        for (int y=2*m-1;y<=5;y++ )
                        {
                                System.out.print(" ");
                        }
                        if(m!=4)System.out.print("*");
                        System.out.println();
                }
        }
}
回复 使用道具 举报
阳杰 发表于 2012-9-2 00:51
你先看看能不能理解,不能理解在问我
class Tu
{

哦 ,好  我先研究研究,我做不出来了  在问你         
回复 使用道具 举报
阳杰 发表于 2012-9-2 00:51
你先看看能不能理解,不能理解在问我
class Tu
{

代码越看越不懂,你把注释给加上吧
回复 使用道具 举报
冰舞世界 发表于 2012-9-2 01:15
哦 ,好  我先研究研究,我做不出来了  在问你

/*
    ----*
        ---*-*
        --*---*
        -*-----*
        *-------*
此图是第一个大for循环画出的图

    -*-----*
        --*---*
        ---*-*
        ----*
此图是第二个for循环画出来的



整体思路:进入第一个for循环
                i=0;
                        打印四个“-“;
                        接着打印一个*;
                        再接着,因为当i=0时,(2*i-1=-1)<0 不符合打印”-'
                        再接着判断if()    i=0又不符合条件,所以不打印*
                        再接着System.out.println(); 换行
                i=1;
                        打印三个“-'
                        接着打印一个*;
                        再接着,因为当i=1时,(2*i-1=1)>0 符合  打印1个”-'
                        再接着判断if()    i=1  符合条件,所以打印*
                        再接着System.out.println(); 换行
                i=2;
                        打印三个“-'
                        接着打印一个*;
                        再接着,因为当i=2时,(2*i-1=3)>0 符合条件循环三次,每次打印一个”-“ ,共打印3个”-'
                        再接着判断if()    i=2  符合条件,所以打印*
                        再接着System.out.println(); 换行
                下面的自己推吧
                i=3;
                。。。。
                。。
                。。

       
                i=4;
                。。
                。。


       进入第二个for循环:
            同理。。。。。
*/
class Tu
{
        public static void main(String[] args)
        {
                 for(int i = 0;i < 5;i++)
                 {
                        for(int j = i;j < 4;j++) //
                        {                //                                                                                                       
                                System.out.print("-");//               
                        }//                                                                                       
        
                        System.out.print("*");

                        for (int y=2*i-1;y>0;y-- )
                        {
                                System.out.print("-");
                        }
                        if(i!=0)System.out.print("*");
                        System.out.println();
                        
                }
//--------------------------------------------------------------------------
             for (int m = 1;m <= 4 ;m++ )
                {   
                        for (int x = 1;x <= m ;x++ )
                        {
                                System.out.print("-");
                        }
               
                        System.out.print("*");
                        for (int y=2*m-1;y<=5;y++ )
                        {
                                System.out.print("-");
                        }
                        if(m!=4)System.out.print("*");
                        System.out.println();
                }
        }
}

点评

不错非常的精辟  发表于 2012-9-3 22:15

评分

参与人数 1黑马币 +1 收起 理由
杨千里 + 1 赞一个!

查看全部评分

回复 使用道具 举报
问题已经解决
回复 使用道具 举报
阳杰 发表于 2012-9-3 21:46
/*
    ----*
        ---*-*

能帮到你就行 呵呵 没白打字  :lol
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马