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日

相关文章

  • 深入学习 Java 中的 Lambda

    深入学习 Java 中的 Lambda Lambda 表达式是什么 Lambda 表达式是 JDK8 引入的一种特殊语法,功能类似于匿名内部类,但更加简洁和易于理解。通过 Lambda 表达式,我们可以将行为作为函数参数传递,从而实现函数式编程。 Lambda 表达式的语法 Lambda 表达式的语法如下: (parameter1, parameter2, …

    Java 2023年5月26日
    00
  • Java String字符串和Unicode字符相互转换代码

    下面是Java String字符串和Unicode字符相互转换代码的完整攻略: Unicode字符和Java String字符串的相互转换 在Java编程中,我们有时需要将Unicode字符和Java String字符串相互转换。Unicode字符是一个标准,它规定了所有字符及其对应的码点。而Java String字符串是由Unicode字符序列组成的。 U…

    Java 2023年5月20日
    00
  • 如何修改JSON字符串中的敏感信息

    如何修改JSON字符串中的敏感信息 在处理JSON数据时,有时我们需要修改敏感信息,如密码、私密令牌等,以保障数据的安全性。在这里我将讲解如何修改JSON字符串中的敏感信息的完整攻略。 方式一:手动替换 最简单直接的方法就是手动替换,通过查找和替换工具,将JSON字符串中的敏感信息手动修改。例如,需要修改以下JSON字符串中的密码信息: { "us…

    Java 2023年5月27日
    00
  • 不同Java泛型构造函数的详解

    不同Java泛型构造函数的详解 在Java中,泛型构造函数是指可以带有一个或多个类型参数的构造函数。泛型构造函数有助于开发人员在编写代码时提高代码的重用性和可读性。 泛型构造函数语法 泛型构造函数的语法非常简单,只需要将构造函数名称放在尖括号中,并在其中指定一个或多个类型参数。例如: public class MyClass<T> { publi…

    Java 2023年5月26日
    00
  • Java文件读写详解

    Java文件读写是Java中常见的操作之一,在Java中读写文件过程需要经过三个步骤:打开文件、读取或写入文件、关闭文件。本文将详细介绍Java文件读写的所有操作及示例。 打开文件 在Java程序中打开文件需要使用Java IO类库。其中FileInputStream和FileOutputStream是Java IO中最常用的两个类。下面分别介绍这两个类在打…

    Java 2023年5月20日
    00
  • SpringMVC 拦截器的使用示例

    下面我来为你详细讲解一下 “SpringMVC 拦截器的使用示例” 的完整攻略。 一、什么是 SpringMVC 拦截器? SpringMVC 拦截器(Interceptor)是 SpringMVC 框架提供的一种强大的工具,它可以在 SpringMVC 框架的业务逻辑之前或之后实现对请求的拦截、处理和修改等操作。与过滤器(Filter)相比,拦截器更为灵活…

    Java 2023年5月16日
    00
  • Java面向对象编程的三大特征

    Java面向对象编程的三大特征分别是封装、继承和多态。下面分别来详细讲解: 封装 封装是面向对象编程的一个非常重要的特征,它是指将数据和方法结合起来,形成一个独立的整体,对外部隐藏对象内部的实现细节。在Java中,通过访问修饰符(public、private、protected)来实现封装。 示例1:下面的代码展示了一个简单的Java类,它使用封装来隐藏内部…

    Java 2023年5月26日
    00
  • 详解 Corba开发之Java实现Service与Client

    详解 Corba开发之Java实现Service与Client 什么是 Corba Common Object Request Broker Architecture(通用对象请求代理架构,简称CORBA)是一种用于构建分布式系统的中间件技术。它可以实现对象之间的交互,并提供了完整的面向对象的支持。CORBA尤其适用于企业级应用,包括电信、金融、航空、医疗等…

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