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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*
键盘录入1-20数字,打印空心正方形
* * * * * * * * *
*                  *
*                 *
*                 *
*                 *
*                 *
*                 *
*                 *
* * * * * * * * *
1,先进行键盘录入变量
2,需要行循环和列循环
3,进行判断是否满足正方形的四条边.
*/
import java.util.Scanner;                                                                                                  //导包
class DaDiShu {
        public static void main (String[] args){
                Scanner sc = new Scanner(System.in);                                                                //创建键盘录入对象;
                System.out.println("请输入一个整数,范围是1-20之间");                               
                int num = sc.nextInt();                                                                                                //将键盘录入的整数赋值给num;
                for (int i = 1; i < num ;i++ ) {                                                                                       //行循环
                        for (int j = 1;j < num ;j++ ) {                                                                              //列循环
                                if (i == 1 || j == 1 || i == num - 1 || j == num - 1) {                              //判断是否是正方形的四条边
                                        System.out.print("* ");                                                                        //满足条件打印*
                                }else{
                                        System.out.print("  ");                                                                        //不满足条件打印空格
                                }
                        }
                        System.out.println();                                                                                        //进行换行
                }
        }
}

评分

参与人数 1黑马币 +10 收起 理由
wuzeshui + 10 很给力!

查看全部评分

6 个回复

倒序浏览
楼主,怎么可以让空心中有文字,如:
*********
*           *
*  你好  *
*           *
*********
让这个文字在中间,不管有多少列,怎么做啊
回复 使用道具 举报
这个比较简单吧
回复 使用道具 举报
本帖最后由 solomanlove 于 2016-1-9 15:41 编辑

if (i == 1 || j == 1 || i == num - 1 || j == num - 1) {                //判断是否是正方形的四条边
               System.out.print("* ");                                                                        //满足条件打印*
}else{
               //System.out.print("  ");                                                                        //不满足条件打印空格
                if (i == num/2 && j == num/2  ) {                                                    //判断中间位置
                        System.out.print("你");                                                            //输出"你",这里不能输出多个汉字,否则会正方形变形.
               }else{
                         System.out.print("  ");
               }
}


因本人能力有限,只能再其中添加一个汉字,如果添加多个汉字的话,就需要用到替换replaceAll还有其他知识

回复 使用道具 举报

高手,简单就请写段代码(主要在是里面有多个汉字),给菜鸟看看吧,让我们开开眼界.
回复 使用道具 举报
很不错啊!
回复 使用道具 举报
import java.util.Scanner;

class KongXinZhengFangXing {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(true) {
            System.out.println("请输入整数:");
            int a = sc.nextInt();
            printSqurt(a);   
        }
    }

    public static void printSqurt(int m) {
        for(int x=0;x<m;x++) {
            if(x==0 || x==(m-1)) {
                for(int y=0;y<m;y++) {
                    System.out.print("* ");
                }
            }else {
                for(int y=0;y<m;y++) {
                    if(y==0||y==(m-1)) {
                        System.out.print("* ");
                    }
                    else {
                        System.out.print("  ");
                    }
                }
            }
            System.out.println();
        }   
    }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马