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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 净坛使者 中级黑马   /  2014-1-4 23:30  /  1027 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么总打印不出规则菱形
class Demo13_ForFor {
        public static void main(String[] args) {
               
               
                //打印空心菱形
                for (int x = 1;x <= 5 ;x++ ) {
                        for (int y = x;y <= 4 ;y++ ) {
                                System.out.print(" ");
                        }
                        for (int z = 1;z <= x ;z++ ) {
                                if (z == 1 || z == x) {
                                        System.out.print("* ");
                                }else {
                                        System.out.print(" ");
                                }
                        }
                        System.out.println();
                }

                for (int a = 1;a <= 4 ;a++ ) {
                        for (int b = 1;b <= a ;b++ ) {
                                System.out.print(" ");
                        }

                        for (int c = a;c <= 4 ;c++ ) {
                                if (c == a || c == 4) {
                                        System.out.print("* ");
                                }else {
                                        System.out.print(" ");
                                }
                                
                        }

                        System.out.println();
                }
        }
}

4 个回复

倒序浏览
  1. class Demo{
  2.         public static void main(String[] args) {
  3.                
  4.                
  5.                 //打印空心菱形
  6.                 for (int x = 1;x <= 5 ;x++ ) {
  7.                         for (int y = x;y <= 4 ;y++ ) {
  8.                                 System.out.print(" ");
  9.                         }
  10.                         for (int z = 1;z <= 2*x-1 ;z++ ) {
  11.                                 if (z == 1 || z == 2*x-1) {
  12.                                         System.out.print("*");
  13.                                 }else {
  14.                                         System.out.print(" ");
  15.                                 }
  16.                         }
  17.                         System.out.println();
  18.                 }

  19.                 for (int a = 1;a <= 4 ;a++ ) {
  20.                         for (int b = 1;b <= a ;b++ ) {
  21.                                 System.out.print(" ");
  22.                         }

  23.                         for (int c = a;c <= 2*4-a ;c++ ) {
  24.                                 if (c == a || c == 2*4-a) {
  25.                                         System.out.print("*");
  26.                                 }else {
  27.                                         System.out.print(" ");
  28.                                 }
  29.                                 
  30.                         }

  31.                         System.out.println();
  32.                 }
  33.         }
  34. }
复制代码

//看看是不是你想要的
回复 使用道具 举报
您这个方法有点问题!!您试试这样!
回复 使用道具 举报
class Demo {
        public static void main(String[] args) {
                for (int i = 0;i<7 ;i++ ) {
                        for (int j = 0;j<7-i ; j++) {
                                System.out.print(" ");
                        }
                        for (int k = 0;k<=i ;k++ ) {
                                System.out.print(" *");
                        }
                        System.out.println();
                }
                for (int i = 0;i<6 ;i++ ) {
                        for (int j = 0;j<=i+1 ;j++ ) {
                                System.out.print(" ");
                        }
                        for (int k = 0;k<6-i ;k++ ) {
                                System.out.print(" *");
                        }
                        System.out.println();
                }
        }
}
回复 使用道具 举报
  1. /* 
  2.   图形打印原理:把菱形拆分成两个等边三角形,分别打印上下两个三角形,组合成菱形  
  3. */
  4. class Demo13_ForFor {
  5.     public static void main(String[] args) {
  6.             
  7.             
  8.             //打印空心菱形
  9.             for (int x = 1;x <= 5 ;x++ ) {
  10.                     //外层循环控制行数,即为上半个三角形的行数  
  11.                     // 内循环一控制空格的输出
  12.                     for (int y = x;y <= 4 ;y++ ) {
  13.                             System.out.print(" ");
  14.                     }
  15.                     for (int z = 1;z <= 2*x-1 ;z++ ) {
  16.                             //判断是本行的第一个个最后一个打印*
  17.                             if (z == 1 || z == 2*x-1) {
  18.                                     System.out.print("* ");
  19.                             }else {
  20.                                       //其他的都输入空格
  21.                                     System.out.print(" ");
  22.                             }
  23.                     }
  24.                     System.out.println();
  25.             }
  26.           //外层循环控制行数,下半个三角形比上面的少一行,所以是4
  27.             for (int a = 1;a <= 4 ;a++ ) {
  28.                    
  29.                     for (int b = 1;b <= a ;b++ ) {
  30.                             System.out.print(" ");
  31.                     }
  32.                   //第一个为1,最后一个是(5-a)*2-1,所以不用<=(5-a)*2
  33.                     for (int c = 1;c < (5-a)*2 ;c++ ) {   
  34.                            
  35.                             if (c == 1 || c == (5-a)*2-1) {
  36.                                     System.out.print("* ");
  37.                             }else {
  38.                                     System.out.print(" ");
  39.                             }
  40.                            
  41.                     }

  42.                     System.out.println();
  43.             }
  44.     }
  45. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马