教你如何使用Java输出各种形状

 更新时间:2021年09月16日 14:25:31   作者:CodingDGSun  
本文小编将向大家介绍的是如何利用Java输出各种不同的形状,本文一共介绍了七种有趣的形状,感兴趣的小伙伴赶快收藏起来吧

1、输出矩形

以此矩形案例(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();
        }
    }

输出结果:

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

2、前面有空格的矩形

以此矩形案例(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();
        }
    }

输出结果:

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

3、输出平行四边形

以此矩形案例(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、输出三角形

以此案例(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();
        }
    }

输出结果:

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

5、输出菱形

此案例由上面三角形(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();
        }
    }

输出结果:

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

5、输出空心菱形

此案例由上面三角形(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();
        }
    }

输出结果:

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

6、输出正方形

以此案例(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();
        }
    }

输出结果:

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

7、输出实心菱形

以此案例(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输出各种形状的文章就介绍到这了,更多相关Java输出形状内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • spring解决循环依赖的简单方法

    spring解决循环依赖的简单方法

    这篇文章主要给大家介绍了关于spring解决循环依赖的简单方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Java中Parser的用法

    Java中Parser的用法

    这篇文章主要介绍了Java Parser使用指南,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • 使用IntelliJ IDEA 15和Maven创建Java Web项目(图文)

    使用IntelliJ IDEA 15和Maven创建Java Web项目(图文)

    本篇文章主要介绍了使用IntelliJ IDEA 15和Maven创建Java Web项目(图文),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • IDEA中调用方法时,如何同步显示方法的注释信息

    IDEA中调用方法时,如何同步显示方法的注释信息

    这篇文章主要介绍了IDEA中调用方法时,如何同步显示方法的注释信息问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • Java中解压缩文件的方法详解(通用)

    Java中解压缩文件的方法详解(通用)

    在软件开发和数据处理领域,文件的解压缩和压缩是常见的任务,下面这篇文章主要给大家介绍了关于Java中解压缩文件的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • Java使用策略模式解决商场促销商品问题示例

    Java使用策略模式解决商场促销商品问题示例

    这篇文章主要介绍了Java使用策略模式解决商场促销商品问题,简单描述了策略模式的概念、原理,并结合实例形式分析了Java基于策略模式解决商品促销问题的相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • JAVAlogback日志管理详解

    JAVAlogback日志管理详解

    本篇文章主要介绍了在SpringBoot中使用Logback管理记录日志,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-09-09
  • java中的Io(input与output)操作总结(二)

    java中的Io(input与output)操作总结(二)

    这一节我们来讨论关于文件自身的操作包括:创建文件对象、创建和删除文件、文件的判断和测试、创建目录、获取文件信息、列出文件系统的根目录、列出目录下的所有文件,等等,感兴趣的朋友可以了解下
    2013-01-01
  • Java中缓冲流的使用与性能提升(让文件操作更高效)

    Java中缓冲流的使用与性能提升(让文件操作更高效)

    本文通过实例代码介绍了Java中缓冲流的概念、工作原理和性能提升,并提供了字节缓冲流和字符缓冲流的使用示例,缓冲流通过在内存中创建缓冲区,减少实际的I/O操作次数,从而提升文件读写性能,结合实例代码给大家讲解的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-12-12
  • 详解Java中的时区类TimeZone的用法

    详解Java中的时区类TimeZone的用法

    TimeZone可以用来获取或者规定时区,也可以用来计算时差,这里我们就来详解Java中的时区类TimeZone的用法,特别要注意下面所提到的TimeZone相关的时间校准问题.
    2016-06-06

最新评论