黑马程序员技术交流社区

标题: 这是哪里错了啊? [打印本页]

作者: darkpiece    时间: 2014-1-21 16:52
标题: 这是哪里错了啊?
本帖最后由 darkpiece 于 2014-1-21 21:06 编辑

public class Demo3

{
        public static void main(String []args)
        {
                //死去活来->打四层
                int lay=7;
                //表示有多少层
                for(int i=1;i<=lay;i++)
                {   
                        //找出空格规律
                        //1->3 2->2 3->1 4->0
                        for(int k=1;k<=lay;k++)
                        {
                                System.out.print(" ");
                        }
                        //打印*
                        //1->1 2->3 3->5 4->7
                        for(int j=1;j<=(i-1)*2+1;j++){
                                //判断该层是否是顶层或者是底层
                                if(i==1||i==lay){
                                System.out.print("*");
                                }
                                else
                                {
                                        //如果是第一个*
                                        if(j==1||j==(i-1)*2+1)
                                        {
                                                System.out.print("*");
                                        }
                                                else{
                                                        System.out.print(" ");
                                                }
                                }
                        }
                        //打出一个换行
                        System.out.println();
                }
        }
}
作者: darkpiece    时间: 2014-1-21 16:55
要求打印金子塔,编译不过去
作者: 奋斗的小雨    时间: 2014-1-21 17:16
不断学习中。。。
作者: 三十而立    时间: 2014-1-21 19:40
  1. public class Pyramid {
  2.         public static void main(String[] args) {
  3.                 int lay = 7;
  4.                 printPyramid(lay);
  5.         }

  6.         private static void printPyramid(int lay) {
  7.                 for (int i = 1; i <= lay; i++) {
  8.                         for (int j = 1; j <= lay-i; j++) {
  9.                                 System.out.print(" ");
  10.                         }
  11.                        
  12.                         for (int k = 1; k <= i*2-1; k++) {
  13.                                 System.out.print("*");
  14.                         }
  15.                         System.out.println();
  16.                 }
  17.         }
  18. }
复制代码

经过测试了,你试试!
作者: darkpiece    时间: 2014-1-21 21:07
明白了~
作者: darkpiece    时间: 2014-1-21 23:21

                                if(i==1||i==lay-1){}
少打了一个-1 发现了
                                




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2