【发布时间】:2014-12-21 06:44:38
【问题描述】:
代码的输出显示如下:
下面的代码对我来说似乎很时髦,即使是新手。我想代码可以更有效地完成,或者至少可以节省几行代码,而不必抽出这么多循环。
如果有人可以提供更清洁的解决方案,请提前致谢。
public class diamond {
public static void main(String[] args) {
for (int c=1; c<=10; c++) {
for (int d=1; d<=11-c; d++) {
System.out.print("*");
}
for (int e=2; e<c*2; e++) {
System.out.print(" ");
}
for (int i=1; i<=11-c; i++) {
System.out.print("*");
}
System.out.println();
}
for (int f=2; f<=10; f++) {
for (int g=1; g<=f; g++) {
System.out.print("*");
}
for (int h=2; h<22-f*2; h++) {
System.out.print(" ");
}
for (int j=1; j<=f; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
【问题讨论】:
-
我立即了解您的代码在做什么的事实是最大的迹象表明它的方式非常好。在专业开发中,清晰易读的代码远比缩短几行代码或微优化代码以节省几个 CPU 周期更有价值。
-
@VGR 我不能同意这是“清晰易读的代码”。也许您发现了这一点,因为您已经非常准确地知道它要达到的目标。我认为大多数对正在解决的问题一无所知的人不会仅仅通过阅读它就能“立即”理解该代码在做什么。即使在知道要解决的问题之后,下面发布的大多数答案也更容易理解。
标签: java loops for-loop while-loop simplify