不要把简单的事情搞得N复杂(例1)


不要把简单的事情搞得N复杂(例1)

题目:用java写一个程序,打印如下图形

*

**

***

****

*****

请思考三钞钟,写下你的程序,然后看答案。

我刚毕业时的答案:

Java代码
  1. package com.albertsong;  
  2.   
  3. /**
  4. *
  5. * @author Albert
  6. *
  7. */  
  8. public class PrintStar {  
  9.   
  10.     public static void main(String[] args) {  
  11.         for(int i=0;i<5;i++){  
  12.             for(int j=0;j<i+1;j++){  
  13.                  System.out.print("*");  
  14.              }  
  15.              System.out.println();  
  16.          }  
  17.      }  
  18.   
  19. }  
package com.albertsong; /** * * @author Albert * */ public class PrintStar { public static void main(String[] args) { for(int i=0;i<5;i++){ for(int j=0;j<i+1;j++){ System.out.print("*"); } System.out.println(); } } }

现在的答案:

Java代码
  1. package com.albertsong;  
  2.   
  3. /**
  4. *
  5. * @author Albert
  6. *
  7. */  
  8. public class PrintStar {  
  9.   
  10.     public static void main(String[] args) {  
  11.          System.out.println("*\n**\n***\n****\n*****\n");  
  12.      }  
  13.   
  14. }  
package com.albertsong; /** * * @author Albert * */ public class PrintStar { public static void main(String[] args) { System.out.println("*\n**\n***\n****\n*****\n"); } }

看到这里,同学们肯定有话要说了。

我也有话要说,我想说的是:“与人方便,自己方便”。

仅就这个题目而言,显然第二个程序要好得多,它实现了和第一个程序一样的功能。无论从代码行数,还是容易理解的程度,第一个程序都无法与之相比。

讨论1:

M:第一个程序更容易修改,扩展,适应性更强。如果要打印下面的图形,

*

**

***

...

*****...***(注:第100行有100个)

改第二个程序还不累死?

A:如果第二天客户要打印的是下面这个图形呢?

*

**

***

* **

*** *

M:变态!%^&*

A:没有变态的客户,只有懒惰的程序员。

讨论2:

1)

A:到目前为止,这样的图形最多有几行?

G:十行吧

A:随着贵公司的发展,有可能到一百行吗?

G:当然是希望越多越好,但按公司目前的情况,十年之内不太可能。

G:但我们有可能调整业务,那时图形可能会变。

A:变了的话应该还是有一定规律的吧

G:那当然,也不能胡乱调阿,结果基本上不是正三角形就是倒三角形,最多会变成菱形。

2)

A:需不需要能够打印一百行,或者一千行的?

G:不需要,这个图还是昨天拍脑袋出来的,先给我打出来看看效果

A:会不会有中间哪儿少个*号的情况

G:你先别管这么多,先把目前这个问题解决了,中间会不会少*号这会儿还不知道。

讨论3:

T:本来想招个学过Java for循环的程序员阿

A:我们下回是不是把题目改成“用java写一个程序,打印如下图形(请使用for循环)。

现在到底哪个程序好,应该比较清楚了吧。

“不要把简单的事情搞得N复杂”,这句话是针对结果,而不是针对过程的准则。

前几天在闲聊中写道:不要解决不存在的问题,我想更为准确的说法是:不要解决了不存在的问题。

路人甲:哦,懂了,但是,这和前面说到的“与人方便,自己方便”有什么关系?

A:没有一毛钱的关系,如果“认真分析需求,为客户着想”这种理念高尚得让你有点儿难受的话,不妨想想,这样做,实际上可以为自己省下看毛片的时间呀,对不?

posted on 2009-04-15 14:04  dhj  阅读(169)  评论(0编辑  收藏  举报

导航