本人初学者 需求是 根据用户输入的边长 在中间 掏出一个菱形 但是我发现我的代码 似乎很凌乱 很杂 求简化代码 加注释分析 谢谢大神们
import java.util.Scanner;//召唤大神。。。
class Demo
{
public static void main(String[] args)
{
System.out.print("输入边长=");
Scanner in = new Scanner(System.in);// 新建一个大神。。
int num = in.nextInt();// 存到了 num 中
int n = num/2;//
for (int x = 1; x<= 2*n+1; x++) {//必须得是奇数行才行。。。。。
System.out.print("* ");
}
for (int x = 1; x <= n; x++) {//
System.out.print("\n");
for (int y = x; y <= n ; y++) {//自减
System.out.print("* ");
}
for (int y = 1;y <= 2*x-1 ; y++) {//中间的菱形空格
System.out.print(" ");
}
for (int y = x; y <= n ; y++) {//自减
System.out.print("* ");
}
}
//下面的
for (int x = 1; x <= n-1; x++) {
System.out.print("\n");
for (int y = 1; y <=x+1 ; y++) {//自增 +1 是为了 第一行输出2次
System.out.print("* ");
}
for (int y = 2*n -3;y >= 2*x-1; y--) {
System.out.print(" ");
}
for (int y = 1; y <= x+1 ; y++) {//同上
System.out.print("* ");
}
}
System.out.print("\n");
for (int x = 1; x<= 2*n+1; x++) {
System.out.print("* ");
}
}
} |