黑马程序员技术交流社区

标题: 谁能帮我优化一下代码,谢啦 [打印本页]

作者: 杨洋    时间: 2012-7-31 08:56
标题: 谁能帮我优化一下代码,谢啦
本帖最后由 杨洋 于 2012-7-31 11:37 编辑

class  Heart {
public static void main(String[] args)
{
  for(int x=0;x<4;x++)
  {
   for(int z=4;z>x;z--)
   {
    System.out.print("  ");
   }
   System.out.print("*");
   for(int z=0;z<x;z++)
   {
    System.out.print("  ");
   }

   for(int z=0;z<x;z++)
   {
    System.out.print("  ");
   }
   System.out.print(" *");

   
   for(int z=3;z>x;z--)
   {
    System.out.print("  ");
   }
   for(int z=3;z>x;z--)
   {
    System.out.print("  ");
   }
   System.out.print("*");
   for(int z=0;z<x;z++)
   {
    System.out.print("  ");
   }

   for(int z=0;z<x;z++)
   {
    System.out.print("  ");
   }
   System.out.print(" *");

   System.out.println("");
  }
   for(int x=1;x<=33;x++)
   {
    if(x==1||x==33)
     System.out.print("*");
    System.out.print(" ");
   }
   System.out.println("");

  for(int x=0;x<9;x++)
  {
   for(int y=0;y<x;y++)
   {
    System.out.print("  ");
   }
   System.out.print("*");
   for(int z=8;z>x;z--)
   {
    System.out.print("  ");
   }
   for(int z=8;z>x;z--)
   {
    System.out.print("  ");
   }
   System.out.print("*");
   
  System.out.println();
  }
  
}
}                                                   
  运行结果:   

作者: 周坤    时间: 2012-7-31 11:19
  1. public class HeartDemo {

  2.         public static void main(String[] args)
  3.         {
  4.                
  5.         for(int i=0;i<5;i++){
  6.                 for(int j=0;j<5;j++)
  7.                 {
  8.                         if(j==4-i)
  9.                                 System.out.print("* ");       
  10.                         else
  11.                         System.out.print("  ");
  12.                 }
  13.        
  14.                
  15.                 for(int k=0;k<5;k++){
  16.                         if(k==4)
  17.                                 continue;
  18.                
  19.                         if(k==i)
  20.                                 System.out.print("* ");
  21.                         else
  22.                         System.out.print("  ");
  23.                        
  24.                 }
  25.                
  26.                 for(int j=0;j<5;j++)
  27.                 {
  28.                         if(j==0)
  29.                                 continue;
  30.                        
  31.                         if(j==4-i)
  32.                                 System.out.print("* ");       
  33.                         else
  34.                         System.out.print("  ");
  35.                        
  36.                 }
  37.                
  38.                 for(int k=0;k<5;k++){
  39.                        
  40.                         if(k==i)
  41.                                 System.out.print("* ");
  42.                         else
  43.                         System.out.print("  ");
  44.                 }
  45.                 System.out.println();
  46.         }
  47.        
  48.         for(int i=0;i<9;i++){
  49.                 for(int k=0;k<9;k++){
  50.                         if(k==i)
  51.                                 System.out.print("* ");
  52.                         else
  53.                         System.out.print("  ");
  54.                 }
  55.                 for(int j=0;j<9;j++)
  56.                 {
  57.                         if(j==8-i)
  58.                                 System.out.print("* ");       
  59.                         else
  60.                         System.out.print("  ");
  61.                 }
  62.                 System.out.println();
  63.        
  64.         }
  65.         }
  66.        
  67.        
  68. }
复制代码
不会优化,效果也不大一样,我的能力只能这样了
作者: 安安的小妖    时间: 2012-7-31 20:45
周坤 发表于 2012-7-31 11:19
不会优化,效果也不大一样,我的能力只能这样了

加油哦!挺好的呢

作者: 韩伟    时间: 2012-8-7 11:52
哥们的代码读起来头大,不能把他们全部放在一个函数里面,我根据功能写了一些代码:
  1. class Heart
  2. {
  3.         public static void main(String []args)
  4.         {
  5.                 writeUp(5);
  6.                 writeDown(10);
  7.         }

  8.         public static void writeDown(int len)
  9.         {
  10.                 for(int i=0;i<=len;i++)
  11.                 {
  12.                         printnull(i);
  13.                         System.out.print("*");
  14.                         printnull(2*(len-i));
  15.                         System.out.println("*");
  16.                 }
  17.         }
  18.     public static void writeUp(int len)
  19.         {
  20.                 for(int i=len;i>=0;i--)
  21.                 {
  22.                         printnull(i);
  23.                         System.out.print("*");
  24.                         printnull(2*(len-i));
  25.                         if(i!=0)
  26.                         {
  27.                                 System.out.print(" *");
  28.                                 printnull(i*2-2);
  29.                                 System.out.print("* ");
  30.                         }
  31.                         printnull(2*(len-i));
  32.                         System.out.println("*");
  33.                 }
  34.         }
  35.         public static void printnull(int n)
  36.         {
  37.                 for(int j=0;j<n;j++)
  38.                         {
  39.                                 System.out.print("  ");
  40.                         }
  41.         }
  42. }
复制代码





作者: 王德超    时间: 2012-8-29 15:00
可以对这些代码做个解释吗?多加些注释,或是把实现的思路写出来
作者: 王德超    时间: 2012-8-29 15:01
尤其是for循环的思路




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