黑马程序员技术交流社区
标题:
打印2个菱形,代码能否进行优化
[打印本页]
作者:
谢铭
时间:
2013-8-8 00:39
标题:
打印2个菱形,代码能否进行优化
本帖最后由 谢铭 于 2013-8-10 00:14 编辑
今天老师安排了下面这样一道题目,要求打印两个菱形,写是写出来了,用的是循环和if语句,但是代码太长了,代码我附在了图下面,可以进行优化吗?
怎么优化较快捷,又能实现相关功能。
图形如下所示:
* *
*** ***
***** *****
******* *******
*****************
******* *******
***** *****
*** ***
* *
注:图可能有有点问题,不是很整齐。
代码如下:
public class Demo{
public static void main(String [] args){
for(int a=1; a<=5; a++){ //打印上半部两个三角形
for(int b=1; b<=5-a; b++){
System.out.print(" ");
}
for(int c=1; c<=a; c++){
System.out.print("*");
}
for(int d=1; d<a; d++){
System.out.print("*");
}
for(int b=1; b<=5-a; b++){
System.out.print(" ");
}
for(int b=1; b<=4-a; b++){
System.out.print(" ");
}
for(int c=1; c<=a; c++){
System.out.print("*");
}
if(a==5){
System.out.print("***");
}else{
for(int d=1; d<a; d++){
System.out.print("*");
}
}
System.out.println();
}
for(int e=1; e<=4; e++){ //打印下半部两个三角形
for(int f=1; f<=e; f++){
System.out.print(" ");
}
for(int g=1; g<=5-e; g++){
System.out.print("*");
}
for(int h=1; h<5-e; h++){
System.out.print("*");
}
for(int f=1; f<=e; f++){
System.out.print(" ");
}
for(int f=1; f<e; f++){
System.out.print(" ");
}
for(int g=1; g<=5-e; g++){
System.out.print("*");
}
for(int h=1; h<5-e; h++){
System.out.print("*");
}
System.out.println();
}
}
复制代码
作者:
吴光新
时间:
2013-8-8 07:44
那么多循环!!重复的太多了!
上部分按4块来打印,下部分也按4快来打印,就能少写几个循环了,当然我这不算最优!
public class Demo{
public static void main(String [] args){
for(int a=0; a<5; a++){ //打印上半部两个三角形
for(int b=1; b<5-a; b++){
System.out.print(" ");
}
for(int c=0; c<a*2+1; c++){
System.out.print("*");
}
for(int b=1; b<5-a; b++){
System.out.print(" ");
}
for(int c=0; c<a*2+1; c++){
System.out.print("*");
}
System.out.println();
}
for(int a=0; a<4; a++){ //打印上半部两个三角形
for(int b=0; b<a+1; b++){
System.out.print(" ");
}
for(int c=0; c<6-a*2+1; c++){
System.out.print("*");
}
for(int b=0; b<a+1; b++){
System.out.print(" ");
}
for(int c=0; c<6-a*2+1; c++){
System.out.print("*");
}
System.out.println();
}
}
}
复制代码
作者:
谢铭
时间:
2013-8-8 22:00
Jiewin 发表于 2013-8-8 07:44
那么多循环!!重复的太多了!
上部分按4块来打印,下部分也按4快来打印,就能少写几个循环了,当然我这不算 ...
嗯,刚学的,对于代码不太了解,我好好看下你的代码,我的代码是上半部分成了块,比较多.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2