A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本人初学者 需求是 根据用户输入的边长  在中间 掏出一个菱形  但是我发现我的代码 似乎很凌乱 很杂 求简化代码   加注释分析 谢谢大神们


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("* ");
                }

        }
}   

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

2 个回复

倒序浏览
您需要登录后才可以回帖 登录 | 加入黑马