Java输出形状

作者: CodingDGSun | 来源:发表于2021-07-11 18:53 被阅读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 <= 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)

相关文章

  • Java输出形状

    输出矩形 以此矩形案例(4行,9列的矩形)为例 前面有空格的矩形 以此矩形案例(4行,9列的矩形)为例 输出平行四...

  • Java输出沙漏形状

    如何显示沙漏形状的图形 1到4行每行减两个(第一行不变),5到7行每行加两个。共七行 首先外侧循环有7行数,内层循...

  • Resnet各层输出形状

    定义网络 输入图片 img = torch.randn(size=(2,3,224,224)) 查看形状

  • 第二天

    # 编程 ### 1.输出各类形状 ##### 定义输出函数 var printStr=""; function ...

  • 卷积输出形状 + Tensorflow "padding='SA

    首先,定义变量: 1. 一般卷积输出形状计算公式 1.1 正卷积 在正卷积时,一般我们希望卷积输入形状为输出形状的...

  • 第二天

    编程 1.输出各类形状 定义输出函数 var printStr="";function printChar(c,n...

  • 2018-02-09java与c不同处

    输出方面 java中print输出完不换行; println输出完自动换行 java数组: 1语法: int[...

  • Ninetheen Day(IO基本概念)

    输入流:进入Java程序里面输出流:从Java程序输出 inputstream:输入流outputstream:输...

  • 第二章 流

    输出流java的基本输出类是java.io.OutputStream; OutputStream的子类使用它提供的...

  • JAVA 笔记[11.1][JAVA 异常--自定义异常]

    JAVA 自定义异常 语法 MyException.java EnterMyException.java 输出

网友评论

    本文标题:Java输出形状

    本文链接:https://www.haomeiwen.com/subject/vjzkpltx.html