初学Java语言,这个代码有什么方法可以优化,
int i,j,k;for(i=0;i<11;i++) {//外部循环,控制行数
if(i<=5) {//循环的上半部分
for(j=0;j<i;j++) {//控制输出每行的空格
System.out.print(" ");
}
for(k=1;k<=8-i;k++) {//控制输出列
System.out.print("*");
}
System.out.println();
}else{//循环的下半部分
for(j=1;j<=5;j++) {
System.out.print(" ");
}
for(k=1;k<=i-2;k++) {
System.out.print("*");
}
System.out.println();
}
}
输出:
********
*******
******
*****
****
***
****
*****
******
*******
********
代码行越少越好,可以把想法写出来指点一下,自己想不出别的方法了 {:1_925:}少写嵌套 int space = 0, star = 8;
for (int i = 0; i < 11; i++) {
for (int s = 0; s < space; s++) {
System.out.print(" ");
}
for (int j = 0; j < star; j++) {
System.out.print("*");
}
System.out.println();
int temp = i < 5 ? space++ & star-- : star++;
} 尽量减少for嵌套,if嵌套 for (int j : arr) {
}
java 是支持这个语法的,逻辑用多态拆开,
页:
[1]