Java利用for循环输出空心三角形、空心菱形和空心矩形的代码

让我们来详细讲解Java利用for循环输出空心三角形、空心菱形和空心矩形的代码。

输出空心三角形

首先,我们要理解空心三角形的形状,它是由多个递进的空格和星号组成的,而每行的符号数都是依次递增或递减的。

下面是一个输出空心三角形的示例代码:

public class HollowTriangle {
    public static void main(String[] args) {
        int num = 5; // 控制行数
        for(int i = 1; i <= num; i++) {
            for(int j = 1; j <= num - i; j++) {
                System.out.print(" "); // 输出空格
            }
            for(int k = 1; k <= (2*i-1); k++) {
                if(k == 1 || k == (2*i-1) || i == num) {
                    System.out.print("*"); // 输出星号
                } else {
                    System.out.print(" "); // 输出空格
                }
            }
            System.out.println(); // 换行
        }
    }
}

代码中的三个for循环分别控制了输出的行数、空格数和星号数,其中:

  • 外层循环控制行数;
  • 第二个循环控制空格数,循环次数为当前行数 - 1,即前面的空格数需要递减;
  • 第三个循环控制星号数,循环次数为当前行数的2倍 - 1,其中需要特殊处理的情况是第一个星号、最后一个星号和最后一行的星号都是需要输出的,其它位置都是空格。

运行结果如下:

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

输出空心菱形

同样地,我们需要理解空心菱形的形状,它是由多个递进的空格和星号组成的,而每行的符号数都是依次递增或递减的,但是它与空心三角形不同的是,空心菱形是由两个三角形组成的,因此需要对空格和星号的输出做一定的变化。

下面是一个输出空心菱形的示例代码:

public class HollowDiamond {
    public static void main(String[] args) {
        int num = 5; // 控制行数
        for(int i = 1; i <= num; i++) {
            for(int j = 1; j <= num - i; j++) {
                System.out.print(" "); // 输出空格
            }
            for(int k = 1; k <= (2*i-1); k++) {
                if(k == 1 || k == (2*i-1)) {
                    System.out.print("*"); // 输出星号
                } else {
                    System.out.print(" "); // 输出空格
                }
            }
            System.out.println(); // 换行
        }
        for(int i = num - 1; i >= 1; i--) {
            for(int j = num - i; j >= 1; j--) {
                System.out.print(" "); // 输出空格
            }
            for(int k = 1; k <= (2*i-1); k++) {
                if(k == 1 || k == (2*i-1)) {
                    System.out.print("*"); // 输出星号
                } else {
                    System.out.print(" "); // 输出空格
                }
            }
            System.out.println(); // 换行
        }
    }
}

代码中使用了两个for循环分别输出了上下两个三角形,其中:

  • 第一个for循环和第二个for循环的作用与空心三角形相同;
  • 每个三角形的第一个和最后一个星号仍然是需要输出的;
  • 对于第一个三角形,第+i行打印2*i-1个星号;
  • 对于第二个三角形,第+i行打印2*i-1个星号。

运行结果如下:

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

输出空心矩形

最后,我们需要理解空心矩形的形状,它是由多个递进的空格和星号组成的,而每行的符号数都是不同的。下面是一个输出空心矩形的示例代码:

public class HollowRectangle {
    public static void main(String[] args) {
        int row = 4; // 控制行数
        int col = 6; // 控制列数
        for(int i = 1; i <= row; i++) {
            for(int j = 1; j <= col; j++) {
                if(i == 1 || i == row || j == 1 || j == col) {
                    System.out.print("*"); // 输出星号
                } else {
                    System.out.print(" "); // 输出空格
                }
            }
            System.out.println(); // 换行
        }
    }
}

代码中使用了嵌套的for循环输出矩形,其中:

  • 外层循环用于控制输出的行数;
  • 内层循环用于控制输出的列数,如果是第一行、最后一行、第一列、最后一列则输出星号,否则输出空格。

运行结果如下:

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

以上就是Java输出空心三角形、空心菱形和空心矩形的完整攻略和代码示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java利用for循环输出空心三角形、空心菱形和空心矩形的代码 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • jsp中checkbox用法详解

    JSP中Checkbox用法详解 在JSP中通过Checkbox可以实现多选以及默认选中的功能,下面我们来详细讲解Checkbox的用法。 CheckBox的基本语法 Checkbox的基本语法如下: <input type="checkbox" name="checkName" value="chec…

    Java 2023年6月15日
    00
  • Servlet中/和/*的区别详解

    当我们在开发Web应用时,Servlet是最核心也是最重要的一个组件。而在Servlet的映射中,常常会用到“/”和“*”两种符号。在本文中,我将详细讲解这两种符号的区别。 1. 映射路径的概念 在开始之前,我们需要了解一下Servlet的映射路径的概念。Servlet的映射路径就是指访问Servlet的URL路径。比如我们定义了一个Servlet,它的映射…

    Java 2023年6月15日
    00
  • SpringBoot请求处理之常用参数注解介绍与源码分析

    SpringBoot请求处理之常用参数注解介绍与源码分析 在Spring Boot应用程序中,我们需要处理各种类型的请求。在处理请求时,我们需要使用不同的参数注解来获取请求参数。本文将详细介绍Spring Boot请求处理中常用的参数注解,并分析其源代码。 @RequestParam @RequestParam注解用于获取请求参数。以下是一个示例: @Get…

    Java 2023年5月15日
    00
  • 实例详解java Struts2的配置与简单案例

    实例详解Java Struts2的配置与简单案例 简介 Java Struts2是MVC框架中的一种,它通过将应用程序分成模型、视图和控制器三个部分,从而使得开发人员能够更加清晰地组织代码并且更加容易地维护代码。 本文将会通过具体的操作步骤详细说明如何在Java Struts2中进行配置,并且给出两个简单的案例。 配置步骤 步骤一:下载和安装Java Str…

    Java 2023年5月20日
    00
  • Android实现与Apache Tomcat服务器数据交互(MySql数据库)

    接下来我将详细讲解“Android实现与Apache Tomcat服务器数据交互(MySql数据库)”的完整攻略。 1. 确定需要的框架和工具 在实现Android与Apache Tomcat服务器数据交互(MySql数据库)之前,你需要明确需要的框架和工具。例如: Android Studio:用于开发Android应用程序; Apache Tomcat:…

    Java 2023年5月19日
    00
  • Java Springboot整合支付宝接口的教程详解

    Java Springboot整合支付宝接口的教程详解 介绍: Java Springboot是当前广泛使用的Java开发框架之一,兼容了Spring框架的优势并整合了大量解决方案,易用易扩展,本文将详细讲解如何在Java Springboot应用中整合支付宝接口。 准备工作: 1. 开通支付宝开放平台账号: 首先访问 支付宝开放平台官方网站,进行开发者注册…

    Java 2023年5月19日
    00
  • Java线程死锁代码详解

    这里我给你提供一份“Java线程死锁代码详解”的攻略,希望能对你有所帮助。 背景介绍 线程死锁在多线程环境下是非常常见的情况,而解决线程死锁也非常困难,因此需要我们对线程死锁有一个深入的了解。本文将详细讲解Java线程死锁的原因、示例以及如何解决死锁。 什么是线程死锁? 当两个或更多的线程互相持有对方所需要的资源,同时等待对方释放资源,就会出现线程死锁。可以…

    Java 2023年5月24日
    00
  • JavaIO BufferedReader和BufferedWriter使用及说明

    JavaIO BufferedReader和BufferedWriter使用及说明 在Java中,读写文件是非常频繁的操作。BufferedReader和BufferedWriter是常用的文件读写工具类。本文将详细介绍这两个工具类的使用方法及说明。 BufferedReader BufferedReader是一个用来读取字符流的缓冲区。它以一个字符输入流作…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部