黑马程序员技术交流社区

标题: 重复的代码很多,怎么复用? [打印本页]

作者: 极光_CDY    时间: 2015-3-18 23:36
标题: 重复的代码很多,怎么复用?
  1. /*
  2. 打印图形,建立函数调用
  3.     A
  4.    BCD
  5.   EFGHI
  6. JKLMNOP
  7. QRSTUVWXY
  8. ZYXWVUT
  9.   SRQPO
  10.    NML
  11.     K

  12. 思路:        1首先分为上下两部分三角来看       
  13.     A     
  14.    BCD      
  15.   EFGHI      
  16. JKLMNOP      
  17. QRSTUVWXY
  18. -------------------
  19. ZYXWVUT
  20.   SRQPO
  21.    NML
  22.     K
  23.         2字母部分由于明显的累加性,可采用ASCII码进行强制类型转换
  24.         3处理上部分
  25.         4处理下部分

  26.         难点在于分析按abcde、、、z、、、bcabc顺序打印。
  27. */

  28. class  Demo   //为方便建立类和主函数
  29. {
  30.         public static void main(String[] args)
  31.         {
  32.                 for(int x = 1; x<=10;x++)
  33.                         lingXing(x);               
  34.         }

  35.         public static void lingXing(int num)   //定义不同行数菱形的打印
  36.         {
  37.                 int count = 65;//输出字母

  38.                 boolean b = true;//负责记录打印字母的状态
  39.                 int state = 0;

  40.                 for(int x = 1; x<=num;x++)//上半部分
  41.                 {
  42.                         for(int y = 1; y<=num-x;y++)
  43.                         {
  44.                                 System.out.print(" ");
  45.                         }
  46.                         for(int y = 1;y<x*2;y++)
  47.                         {
  48.                                 if(b)
  49.                                 {
  50.                                         System.out.print((char)count++);
  51.                                         if(++state==26)
  52.                                         {
  53.                                                 b=!b;                                                                                                state=1;
  54.                                                 count-=2;
  55.                                         }
  56.                                 }
  57.                                 else
  58.                                 {
  59.                                         System.out.print((char)count--);
  60.                                         if(++state==26)
  61.                                         {
  62.                                                 b=!b;
  63.                                                 state=1;
  64.                                                 count+=2;
  65.                                         }
  66.                                 }
  67.                         }
  68.                         System.out.println();
  69.                 }
  70.                
  71.                 for(int x = 1; x<num;x++)//下半部分
  72.                 {
  73.                         for(int y = 0; y<x;y++)
  74.                         {
  75.                                 System.out.print(" ");
  76.                         }
  77.                         for(int y = 1;y<2*(num-x);y++)
  78.                         {       
  79.                                 if(b)
  80.                                 {
  81.                                         System.out.print((char)count++);
  82.                                         if(++state==26)
  83.                                         {
  84.                                                 b=!b;                                                                                                state=1;
  85.                                                 count-=2;
  86.                                         }
  87.                                 }
  88.                                 else
  89.                                 {
  90.                                         System.out.print((char)count--);
  91.                                         if(++state==26)
  92.                                         {
  93.                                                 b=!b;
  94.                                                 state=1;
  95.                                                 count+=2;
  96.                                         }
  97.                                 }
  98.                         }
  99.                         System.out.println();
  100.                 }
  101.         }
  102. }






复制代码

作者: 胡谭龙    时间: 2015-3-19 10:40
把重复的写一个类,然后实例化调用,应该就差不多了

作者: longlongint    时间: 2015-3-19 12:13
函数 调用 就是这么简单
作者: 埗箬    时间: 2015-3-19 12:55
封装啊,建立对应函数,然后调用函数。




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