Java 中空心矩形或方形星形图案2025年5月12日 | 阅读 5 分钟 在编程中,打印不同形状和类型的星形图案可以是一项有趣的练习。通过打印这类图案可以增强对嵌套循环的理解。因此,在本节中,我们将通过不同的逻辑来理解如何在 Java 中打印空心矩形或正方形星形图案。 空心矩形图案空心意味着内部有一个孔或空(非实心)的空间。因此,空心矩形或正方形图案是由其边界包围且内部为空的形状。例如,请看下图。 ![]() 打印空心矩形或正方形图案的 Java 程序打印空心矩形或正方形星形图案有多种方法。在本节中,我们将讨论以下三种方法:
使用嵌套循环在打印图案的程序中,嵌套循环方法很简单。在此方法中,我们创建两个循环:外层循环和内层循环。 外层循环:它负责迭代空心矩形图案的每一行(从 1 到 n)。 内层循环:它负责在空心矩形图案的当前行中迭代每一列(从 1 到 m)。 边界条件:该条件确保在边界(第一行、最后一行、第一列和最后一列)打印星号(*),否则打印空格。 此条件确保在矩形或正方形的边界上打印星号(*)。让我为您详细解释一下:
如果上述任何条件为真,则表示当前位置在边界上(无论是第一行、最后一行还是第一列、最后一列),并且将打印一个星号(*)。如果这些条件都不为真,则会打印一个空格()而不是星号。 打印完一行的所有列后,在内层循环之后打印一个新行。 让我们在 Java 程序中实现上述逻辑。 输出 ![]() 使用数组在此方法中,初始化一个代表正方形或矩形网格的二维字符 数组。然后,根据其位置用星号和空格填充数组。 边界位置
内部位置
现在,打印数组以显示图案。 输出 ![]() 为什么要使用数组?
使用递归在此方法中,我们首先从用户那里获取矩形的输入宽度和高度。之后,定义一个名为 printHollowRectangle() 的 递归函数,该函数接受三个参数:width、height 和 currentRow。 基本情况:当 currentRow 等于或大于 height 时,递归停止。它确保程序不会尝试打印超过指定行数的行。 行打印逻辑:嵌套循环迭代当前行的每一列。
打印完当前行后,会生成一个新行以移至下一行。 然后,该方法通过将 currentRow 增加一,递归地调用自身,从而逐行进行,直到满足基本情况。 让我们在 Java 程序中实现上述逻辑。 输出 ![]() 为什么要使用递归?递归可以将某些类型的问题分解成更小、更易于管理的子问题,从而简化它们。虽然它不一定是解决此类问题的最有效方法,但它是加深您对递归逻辑理解的绝佳练习。 下一主题Boyer Moore Java |
? Java 是一种强大的编程语言,它提供了许多有效的方法来处理和使用数组。将数组传递给函数是数组操作的关键部分。程序员可以通过将数组作为函数参数来执行操作,直接操作数组项。在此...
阅读 8 分钟
如何在 Java 中获取时间戳 时间戳是一系列字符或编码信息,用于标识某个事件发生的时间,通常给出日期和一天中的时间,有时精确到小数的某个分数。时间戳通常与计算机事件相关,但是...
阅读 3 分钟
Java 编程语言的 FileInputStream 类用于以面向字节的方式从文件中读取数据。它有几个数据读取方法,包括 read()、read(byte[]) 和 read(byte[], int, int)。FileInputStream 类从 Object 类继承的 finalise() 方法是其中一个...
阅读 4 分钟
在本节中,我们将创建 Java 程序,使用 for 循环、while 循环和混淆代码打印印度地图图案。IndiaMapPattern1.java public class IndiaMapPattern1 { public static void main(String args[]) { int a =10, b = 0, c = 10; // 移除前 31 个字符后的编码字符串 // 它的个体...
阅读 4 分钟
在动态的 Java 开发世界中创建稳定且响应迅速的应用程序需要有效的任务管理。Java 并发可以通过异步编程和多线程来实现。Java 编程中的多线程概念允许在单个程序中同时运行多个线程。编写程序...
5 分钟阅读
在 Java 中,集合可以定义为一个用于存储和操作一组对象的框架。集合在 Java 中管理和组织对象集方面起着重要作用。让我们详细了解集合的用途和优点...
7 分钟阅读
Java 是一种广泛使用的编程语言,以其面向对象的特性而闻名,尽管它并不严格遵守这种方法,因为它也支持整数(int)和字符(char)等基本数据类型。本文比较和对比了 Java 开发的两个关键工具:BlueJ,一个用户友好的...
阅读 2 分钟
JSON 是 JavaScript 对象表示法的缩写,它是一种轻量级的数据存储和传输格式。它以键值对的形式存储数据。大多数应用程序使用这种格式在服务器和网页之间传输数据,反之亦然。然而,我们...
阅读 2 分钟
java.util.function 包在 Java 8 中引入,其中包含 DoubleFunction 接口,用于支持 Java 中的函数式编程。它代表一个在接收双精度输入后生成 R 类型结果的函数。只接受一个泛型...
阅读 3 分钟
最长公共前缀(LCP)问题是指查找给定列表中所有字符串的公共前缀的最长字符串;这是一个经典的计算机科学问题,有许多应用,例如 DNA 序列分析、自动完成、数据压缩和...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India