题目:用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:没有一毛钱的关系,如果“认真分析需求,为客户着想”这种理念高尚得让你有点儿难受的话,不妨想想,这样做,实际上可以为自己省下看毛片的时间呀,对不?
分享到:
相关推荐
设计个页面还要搞这么复杂的东西。 实用的小工具GuideGuide来了 为啥要把时间花在数学上,而不是省心一点,留出多一点时间来将设计做得更好呢?只要输入一些数字,GuideGuide就会利用PS里面的辅助线自动的在你的...
设计个页面还要搞这么复杂的东西。 实用的小工具GuideGuide来了 为啥要把时间花在数学上,而不是省心一点,留出多一点时间来将设计做得更好呢?只要输入一些数字,GuideGuide就会利用PS里面的辅助线自动的在你的...
大胆的放弃一些东西吧,有失才有得,把自己有限的、宝贵的精力用在对于就业直接相关的地方,这才是最有效率的学习方式!等你参加工作,有了可持续发展的事业动力和经济基础,有时间有精力闲的没事儿干的时候,再去...
#### 1. Any day will do? - **解析**:这句话常用于询问对方对于日期安排是否有特别偏好,意思是“哪一天都可以吗?”常用于轻松非正式场合。 #### 2. Any messages for me? - **解析**:直接明了地询问是否有自己...
PC-Lint是C/C++软件代码静态分析工具,你可以把它看作是一种更加严格的编译器。它不仅可以检查出一般的语法错误,还可以检查出那些虽然符合语法要求但不易发现的潜在错误。 C语言的灵活性带来了代码效率的提升,但...
1. C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言...