JAVA资深程序员请进.对两个简单代码给予不同角度的评价
两份都是实现同一个目的 打印出菱形图案
----------------------------------------------------------
//xiti2.java
public class xiti
{
public static void main(String[] args)
{
int count = 5;
for(int i = -(count - 1); i < count; i=i+1)
{
for(int j = 0; j < count; j=j+1)
{
int abs = i < 0 ? -i : i;
System.out.print(abs - j > 0 ? ' ' : "* ");
}
System.out.println();
}
}
}
------------------------------------------------------------
//xiti2.java
public class xiti2
{
public static void main(String args[])
{
System.out.println(" * ");
{
System.out.println(" ** ");
{
System.out.println(" *** ");
{
System.out.println(" **** ");
{
System.out.println(" *** ");
{
System.out.println(" ** ");
{
System.out.println(" * ");
}
}
}
}
}
}
}
}
-----------------------------------------------------------
请分别从
老师 程序员自身 程序执行效率 现实应用 几个角度 分别对这两个人进行评价
评价优秀我一定追加分数
补充:第二个 只需要加入空格就能与第一个达到一模一样的效果
一楼评价不够详细啊. 能再具体一点吗?
还有详细点的回答吗>>>???? 加分了!
答案:1、老师、程序员: 更应该写前一种,因为至少还有算法。体现了一个总结过程。
2、效率: 后一种的都用静态字符串粘贴,时间效率略高,空间效率略低;前一种的情况相反。
嵌套{影响不大,甚至会被编译器优化掉。
3、应用:一般会先写前一种有算法的情况,这样有统一和抽象。当算法效率不够时才会考虑用内存/空间换取很好的效率。对这种有规律的变化情况,粘贴3次以上雷同代码的就已经不好了。遵守不重复自己的原则Never Repeat Yourself.. 这2个例子的数据规模太小,没法体现效率差别,只能提醒一下书写原则。
其他:这是java的分支,如果你是学java的,就不难看出这两者的区别,如果是一个学者的话,学到java程序员这一步了,继续学就是java软件工程师了。我是一度教育 第一种写法:灵活性更高,改变count的值,可以得到不同的图案。
第二种写法:明显是小学生的做法。
上一个:java面试时可以查API文档不?
下一个:java中如何将某个菜单项置为灰的,就是功能不可用