Java程序创建金字塔和图案
如果有人想在Java编程语言方面建立坚实的基础。那么,了解循环的工作原理是必要的。此外,解决金字塔图案问题是增强Java基础知识的最佳方法,因为它包含了广泛的用途:
本文旨在提供一些Java程序,利用Java中提供的不同类型的循环来打印金字塔图案。
创建金字塔图案的Java程序
我们将通过Java程序打印以下金字塔图案:
让我们逐一讨论它们。
图案1:半星形金字塔

以下是打印半星形金字塔的步骤:
- 程序定义了一个包含main方法的Pyramid1类。
- 在main方法内部,一个整数rows初始化为5,表示行数。
- 一个for循环从i = 1运行到i <= rows,控制行数。
- 在外循环内部,另一个for循环从j = 1运行到j <= i,在每一行打印*,基于当前的行号。
- 在每一行打印星号后,打印一个换行符。
- 该过程重复进行,直到金字塔以每一行递增的星号打印出来。
示例
public class Pyramid1 {
public static void main(String[] args) {
int rows = 5;
for (int i = 1; i <= rows; ++i) {
for (int j = 1; j <= i; ++j) {
System.out.print("* ");
}
System.out.println();
}
}
}
输出
* * * * * * * * * * * * * * *
图案2:倒置半星形金字塔

以下是打印倒置半星形金字塔的步骤:
- 程序定义了一个包含main方法的Pyramid2类。
- 在main方法内部,一个整数rows初始化为6,表示行数。
- 一个for循环从i = rows(从6开始)递减到i >= 1,以相反的顺序控制行数。
- 在外循环内部,第二个for循环从j = 1运行到j <= i,根据i的当前值打印*。
- 在每一行打印星号后,打印一个换行符。
- 该过程继续进行,每一行打印的星号数量减少,直到图案完成。
示例
public class Pyramid2 {
public static void main(String[] args) {
int rows = 6;
for (int i = rows; i >= 1; --i) {
for (int j = 1; j <= i; ++j) {
System.out.print("* ");
}
System.out.println();
}
}
}
输出
* * * * * *
* * * * *
* * * *
* * *
* *
*
图案3:星形金字塔

以下是打印星形金字塔的步骤:
-
声明并初始化一个整数'n',它指定行数。
-
创建一个嵌套的for循环,外循环将运行到'n',内循环将运行到空格数并打印空格。打印后,我们将空格计数减1。
-
再次使用另一个内循环,它将运行到星数并打印星号。打印后,我们将星数加2。
示例
public class Pyramid3 {
public static void main(String[] args) {
int n = 5; // number of rows
int spc = n-1; // initial space count
int str = 1; // initial star count
// loop to print the pyramid
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= spc; j++) { // spaces
System.out.print("\t");
}
spc--; // decrementing spaces
for(int k = 1; k <= str; k++) { // stars
System.out.print("*\t");
}
str += 2; // incrementing stars
System.out.println();
}
}
}
输出
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
图案4:倒置星形金字塔

以下是打印倒置星形金字塔的步骤:
- 声明并初始化一个整数'n',它指定行数。
- 接下来,将空格的初始计数定义为0,星号的初始计数定义为'n + n – 1',以便我们可以将列数保持为奇数。
- 创建一个嵌套的for循环,外循环将运行到'n',第一个内循环将打印空格。打印后,我们将每次迭代的空格计数加1。
- 再次使用另一个内循环来打印星号。打印后,我们将星数减2。
示例
public class Pyramid4 {
public static void main(String[] args) {
int n = 5;
int spc = 0; // initial space count
int str = n + n - 1; // initial star count
// loop to print the star pyramid
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= spc; j++) { // spaces
System.out.print("\t");
}
spc++; // incrementing spaces
for(int k = 1; k <= str; k++) { // stars
System.out.print("*\t");
}
str -= 2; // decrementing stars
System.out.println();
}
}
}
输出
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
图案5:数字金字塔

我们将在这里使用之前的代码,但是我们将打印列号而不是星号。
- 首先,我们将定义一个包含main方法的Pyramid5类。
- 在main方法内部,初始化三个变量:n = 5,spc = n-1和col = 1。
- 一个for循环从i = 1运行到i <= n以控制行数。
- 在循环内部,第二个for循环从j = 1运行到j <= spc以打印空格。
- 在空格循环之后,spc递减1。
- 另一个for循环从k = 1运行到k <= col以打印数字。
- 在数字循环之后,col递增2,并打印一个换行符。
- 该过程持续进行,直到打印出具有递增数字和递减空格的金字塔图案。
示例
public class Pyramid5 {
public static void main(String[] args) {
int n = 5; // number of rows
int spc = n-1; // initial space count
int col = 1; // initial column count
// loop to print the pyramid
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= spc; j++) { // spaces
System.out.print("\t");
}
spc--; // decrementing spaces
for(int k = 1; k <= col; k++) { // numbers
System.out.print(k + "\t");
}
col += 2; // incrementing the column
System.out.println();
}
}
}
输出
1
1 2 3
1 2 3 4 5
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8 9
结论
在本文中,我们讨论了五个用于打印金字塔图案的Java程序。这些图案解决方案将帮助我们解码图案问题的逻辑,并使我们能够独立解决其他图案。为了解决像这样的图案,我们使用循环和条件块。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP