• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:Java输出形状

java 搞代码 3年前 (2022-01-27) 17次浏览 已收录 0个评论

输入矩形

以此矩形案例(4行,9列的矩形)为例

public static void main(String[] args) {
        //输入矩形
        for (int i = 1; i <= 4; i++) {//管制行,即4行
            for (int j = 1; j <= 9; j++) {//管制输入的*的个数,每行9个
                System.out.print("*");
            }
            //换行
            System.out.println();
        }
    }

//输入后果
*********
*********
*********
*********

后面有空格的矩形

以此矩形案例(4行,9列的矩形)为例

public static void main(String[] args) {
        //输入后面有空格矩形
        for (int i = 1; i <=<strong style="color:transparent">来源gaodai#ma#com搞@@代~&码网</strong> 4; i++) {//管制行,即4行
            //输入空格
            for (int k = 1; k <= 5; k++) {//管制空格,即每行开始输入5个空格
                System.out.print(" ");
            }
            for (int j = 1; j <= 9; j++) {//管制输入的*的个数,每行9个
                System.out.print("*");
            }
            //换行
            System.out.println();
        }
    }

//输入后果
     *********
     *********
     *********
     *********

输入平行四边形

以此矩形案例(4行,9列的矩形)为例,要变成平行四边形

  • 第一行后面输入8个空格
  • 第二行后面输入7个空格
  • 第三行后面输入6个空格
  • 第四行后面输入5个空格
        ********* 1 8
       ********* 2 7
      ********* 3 6
     ********* 4 5

综上所述,得出法则:行数+空格数=9

public static void main(String[] args) {
        //输入平行四边形
        for (int i = 1; i <= 4; i++) {//管制行,即4行
            //输入空格
            for (int k = 1; k <= 9 - i; k++) {//管制空格,行数+空格数=9,即每行开始输入9-i个空格
                System.out.print(" ");
            }
            for (int j = 1; j <= 5; j++) {//管制输入的*的个数,每行5个
                System.out.print("*");
            }
            //换行
            System.out.println();
        }
    }

//输入后果:
        *****
       *****
      *****
     *****

输入三角形

以此案例(4行)为例,要变成三角形

  • 第一行后面输入8个空格,1个星
  • 第二行后面输入7个空格,3个星
  • 第三行后面输入6个空格,5个星
  • 第四行后面输入5个空格,7个星
        * 1 8 1
       *** 2 7 3
      ***** 3 6 5
     ******* 4 5 7

综上所述,得出法则:行数+空格数=9,2x行数-1=星的个数

public static void main(String[] args) {
        //输入三角形
        for (int i = 1; i <= 4; i++) {//管制行,即4行
            //输入空格
            for (int k = 1; k <= 9 - i; k++) {//管制空格,行数+空格数=9,即每行开始输入9-i个空格
                System.out.print(" ");
            }
            for (int j = 1; j <= 2 * i - 1; j++) {//管制输入的*的个数,2x行数-1=星的个数,即每行2 * i -1个星
                System.out.print("*");
            }
            //换行
            System.out.println();
        }
    }

//输入后果:
        *
       ***
      *****
     *******

输入菱形

此案例由下面三角形(4行)和上面倒三角形(3行)组合,变成菱形

下面三角形

  • 第一行后面输入8个空格,1个星
  • 第二行后面输入7个空格,3个星
  • 第三行后面输入6个空格,5个星
  • 第四行后面输入5个空格,7个星

上面倒三角形

  • 第一行后面输入6个空格,5个星
  • 第二行后面输入7个空格,3个星
  • 第三行后面输入8个空格,1个星

          * 1 8 1
         *** 2 7 3
        ***** 3 6 5
       ******* 4 5 7
        *****   1 6 5
         ***     2 7 3
          *       3 8 1

综上所述,得出法则:下面三角形,行数+空格数=9,2x行数-1=星的个数;上面倒三角形,行数+5=空格数,7-2x行数=星的个数

public static void main(String[] args) {
        //输入下面三角形
        for (int i = 1; i <= 4; i++) {//管制行,即4行
            //输入空格
            for (int k = 1; k <= 9 - i; k++) {//管制空格,行数+空格数=9,即每行开始输入9-i个空格
                System.out.print(" ");
            }
            for (int j = 1; j <= 2 * i - 1; j++) {//管制输入的*的个数,2x行数-1=星的个数,即每行2 * i -1个星
                System.out.print("*");
            }
            //换行
            System.out.println();
        }

        //输入上面倒三角形
        for (int i = 1; i <= 3; i++) {//管制行,即3行
            //输入空格
            for (int k = 1; k <= i + 5; k++) {//管制空格,行数+5=空格数,即每行开始输入i+5个空格
                System.out.print(" ");
            }
            for (int j = 1; j <= 7 - 2 * i; j++) {//管制输入的*的个数,7-2x行数=星的个数,即每行7 - 2 * i个星
                System.out.print("*");
            }
            //换行
            System.out.println();
        }
    }

//输入后果:
        *
       ***
      *****
     *******
      *****
       ***
        *

输入空心菱形

此案例由下面三角形(4行)和上面倒三角形(3行)组合,变成菱形,两头星形由空格代替

        * 
       * * 
      *   * 
     *     * 
      *   *   
       * *     
        *       

得出法则:在输入星的中央,每行第一个和最初一个输入星,其余输入空格

 public static void main(String[] args) {
        //输入下面三角形
        for (int i = 1; i <= 4; i++) {//管制行,即4行
            //输入空格
            for (int k = 1; k <= 9 - i; k++) {//管制空格,行数+空格数=9,即每行开始输入9-i个空格
                System.out.print(" ");
            }
            for (int j = 1; j <= 2 * i - 1; j++) {//管制输入的*的个数,2x行数-1=星的个数,即每行2 * i -1个星
                //在首和尾输入星,其余输入空格
                if (j == 1 || j == 2 * i - 1) {
                    System.out.print("*");
                } else {
                    System.out.print(" ");
                }
            }
            //换行
            System.out.println();
        }

        //输入上面倒三角形
        for (int i = 1; i <= 3; i++) {//管制行,即3行
            //输入空格
            for (int k = 1; k <= i + 5; k++) {//管制空格,行数+5=空格数,即每行开始输入i+5个空格
                System.out.print(" ");
            }
            for (int j = 1; j <= 7 - 2 * i; j++) {//管制输入的*的个数,7-2x行数=星的个数,即每行7 - 2 * i个星
                //在首和尾输入星,其余输入空格
                if (j == 1 || j == 7 - 2 * i) {
                    System.out.print("*");
                } else {
                    System.out.print(" ");
                }
            }
            //换行
            System.out.println();
        }
    }

//输入后果:
        *
       * *
      *   *
     *     *
      *   *
       * *
        *

输入正方形

以此案例(5行,5列的正方形)为例

public static void main(String[] args) {
        //输入正方形
        int len = 5;//正方形边长
        for (int i = 1; i <= len; i++) {//管制行,即4行
            for (int j = 1; j <= len; j++) {//输入星,即每行输入j个星
                System.out.print("*");
            }
            //换行
            System.out.println();
        }
    }

//输入后果:
*****
*****
*****
*****
*****

输入实心菱形

以此案例(5行,5列)为例

  • 第一行第一个和最初一个星的地位是3和3
  • 第二行第一个和最初一个星的地位是2和4
  • 第三行第一个和最初一个星的地位是1和5
  • 第四行第一个和最初一个星的地位是2和4
  • 第五行第一个和最初一个星的地位是3和3
  *  1 3 3
 ***  2 2 4
*****  3 1 5
 ***    4 2 4 
  *      5 3 3 
public static void main(String[] args) {
        //输入实心菱形
        int len = 5;//边长
        int first = len / 2 + 1;//开始输入星的地位
        int end = len / 2 + 1;//完结输入星的地位
        boolean flag = true;//如果是上半部三角形则是true,如果是下半倒三角形则是false

        for (int i = 1; i <= len; i++) {//管制行,即4行
            for (int j = 1; j <= len; j++) {//输入星,即每行输入j个星
                if (j >= first && j <= end) {//在每行的起始至完结地位输入星
                    System.out.print("*");
                } else {
                    System.out.print(" ");
                }
            }
            //换行
            System.out.println();

            if(end == len){//最初一个星地位是边长宽度
                flag = false;//下一行,马上执行下半部倒三角形
            }

            if(flag){
                //在上半三角形,开始输入星的地位first前移1,完结输入星的地位end后移1
                first--;
                end++;
            }else {
                //在下半倒三角形,开始输入星的地位first后移1,完结输入星的地位end前移1
                first++;
                end--;
            }
        }
    }

//输入后果:
  *  
 *** 
*****
 *** 
  *  

如果想输入空心菱形则只须要将:

if (j >= first && j <= end)

改成

if (j == first || j == end)

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:Java输出形状

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址