`
王者之剑
  • 浏览: 196434 次
  • 性别: Icon_minigender_1
  • 来自: 湖北
社区版块
存档分类
最新评论

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

阅读更多

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

*

**

***

****

*****

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

 

 

 

我刚毕业时的答案:

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();
		}
	}

}

现在的答案:

 

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

 

42
7
分享到:
评论
4 楼 houzhaowei 2009-04-14  
这篇文章很值得思考 。。
3 楼 王者之剑 2009-04-14  
javaboy2006 写道

雷倒。。。

哈哈
2 楼 lcllcl987 2009-04-14  
不要解决不存在的问题
-------------------
这句话深刻。
我遇到过一个难缠的人, 天天就干这个。
1 楼 javaboy2006 2009-04-14  
写了一下:
        for (int i = 0; i < 5; i++) {
            for (int j = i + 1; j > 0; j--) {
                System.out.print("*");
            }
            System.out.println();
        }

看完:
        System.out.println("*\n**\n***\n****\n*****\n");

雷倒。。。

相关推荐

Global site tag (gtag.js) - Google Analytics