Java 中的模式程序:如何打印星号、金字塔、数字
模式打印程序是包含字母或其他字符的特定格式的设计或符号。Java模式编码可以增强程序员的逻辑构建能力,帮助他们成为优秀的程序员。
模式的分类
我们可以在Java中绘制无数的模式,所有模式都可以通过三种不同的方式执行。
用来识别Java模式程序的主要有三个类别。
- 星形模式:在Java星形模式程序中,星形模式是一系列星号(*),用于创建各种形状,如金字塔星形模式程序、等腰三角形、左对齐三角形、菱形、正方形以及Java中的许多其他模式。
- 数字模式:为了练习流程控制语句,另一种模式类型是Java中的数字模式程序。数字模式程序包含数字/计数。我们通常设置‘i’的值,它是一个循环迭代器,用于在模式编程中生成数字。数字模式的最小循环次数也是两次。Java中的数字模式程序也基于行和列系统工作。
- 字符模式:字符模式编程包含英文字母。这是增强编码技能的另一种方式,但在这里我们处理的是字符,而不是数字或星号。模式可以拥有整个模式中的相同字符,也可以拥有不同的字符,这取决于你应用的逻辑。
Java中的星形模式程序
星形模式会在控制台打印一个星号,模式形状完全取决于你编写的代码。
半左对齐三角形星形模式程序
public class LeftStarPattern{ public static void main(String args[]){ int i, j, row = 6; for (i=0; i<row; i++) { for (j=2*(row-i); j>=0; j--) { System.out.print(" "); } for (j=0; j<=i; j++ ) { System.out.print("* "); } System.out.println(); } } }
代码解释
- 声明int i,int j。声明并初始化行变量为int row。
- i是外部‘for’循环的迭代器,j是内部‘for’循环的迭代器,‘row’包含金字塔应有的行数。
- 在嵌套的for循环中,外部‘for’表示行,内部‘for’表示列。
- 在外部‘for’中,将迭代器‘i’初始化为0,设置条件i< row,然后递增i。
- 现在内部‘for’循环以2*(row-i)初始化并递减。
- 嵌套的‘for’循环会在控制台打印空格。
- 在嵌套‘for’的体外,放置了另一个‘for’循环。在嵌套‘for’执行完毕后,这个‘for’循环会打印星号。它循环直到j<=i。
沙漏星形模式程序
public class Main { public static void main(String[] args) { int rows = 5; for (int i= 0; i<= rows-1 ; i++) { for (int j=0; j <i; j++) { System.out.print(" "); } for (int k=i; k<=rows-1; k++) { System.out.print("*" + " "); } System.out.println(""); } for (int i= rows-1; i>= 0; i--) { for (int j=0; j< i ;j++) { System.out.print(" "); } for (int k=i; k<=rows-1; k++) { System.out.print("*" + " "); } System.out.println(""); } } }
代码解释
- 代码以public static void main开始,int rows将定义沙漏包含的行数。
- 有两个嵌套的‘for’循环,第一个将显示向下金字塔,第二个将显示向上金字塔。
- 在嵌套的for循环中,外部‘for’表示行,内部‘for’表示列。
- 在外部‘for’循环中,i循环直到i<= row-1,内部‘for’循环直到i。print system在控制台打印空格。
- 第二个内部循环在控制台打印星号加空格。
- 当第一个内部循环在i=0完全执行后,第二个内部循环会完全执行。
- 然后外部循环递增。这个周期会持续下去,直到条件变为假。
- 第二个嵌套循环显示向上金字塔,只需更改第一个嵌套循环的外部循环的初始化和条件。
- 它将显示向上金字塔。向下和向上金字塔的组合将形成沙漏星形模式。
菱形星形模式程序
public class Main { public static void main(String args[]) { int n, i, j, space_0 = 1; n = 6; space_0 = n - 1; for (j = 1; j<= n; j++) { for (i = 1; i<= space_0; i++) { System.out.print(" "); } space_0--; for (i = 1; i <= 2 * j - 1; i++) { System.out.print("*"); } System.out.println(""); } space_0 = 1; for (j = 1; j<= n - 1; j++) { for (i = 1; i<= space_0; i++) { System.out.print(" "); } space_0++; for (i = 1; i<= 2 * (n - j) - 1; i++) { System.out.print("*"); } System.out.println(""); } } }
代码解释
- 在菱形星形模式中,‘n’是行数,space_0存储n-1。
- 在嵌套的for循环中,外部‘for’表示行,内部‘for’表示列。
- 第一个嵌套‘for’循环显示向上金字塔。外部‘for’循环直到n,内部for循环直到space_0,内部循环在控制台打印空格。
- 还有一个内部‘for’循环,它循环直到i<= 2 * j – 1,并打印星号。在此内部‘for’循环之外,print system打印一行。这个嵌套循环打印上半部分金字塔。
- 其他嵌套‘for’循环显示向下金字塔。外部‘for’循环直到i<=n-1,第一个内部‘for’打印空格,第二个内部for打印星号。
- 在内部‘for’循环之外,打印行空格。向上和向下的金字塔共同构成了菱形模式。
右对齐三角形星形模式空格模式程序
public class AsterikProgramJava { public static void main(String[] args) { for(int i=1;i<=10;i++) { for(int j=1;j<=i+i;j++) { int mid; mid=j%i; if(mid==0) System.out.print("* "); else System.out.print("*"); } System.out.print("\n"); } } }
代码解释
- 在上面的模式代码中,外部‘for’负责行数,内部‘for’负责列数。
- 当外部‘for’为1时,表示第一行,当内部‘for’为1时,表示第一列。
- 在内部‘for’循环中,声明一个名为mid的变量,并将j/i的余数存储起来。这会除以i和j的值以获得模数。
- 因此,如果模数为0,则显示一个星号和空格;否则,只显示一个星号。在内部‘for’循环之外,打印一行。
Java中的数字模式程序
数字模式包含数字;我们可以从数字模式中绘制许多不同的形状。
反向半对齐三角形模式程序
public class Number_p { public static void main(String[] args) { int i, j, rows_0=5; for (i = rows_0; i >= 1; i--) { for (j = 1; j <= i; j++) { System.out.print(j+" "); } System.out.println(); } for (i = 2; i <= rows_0; i++) { for (j = 1; j <= i; j++) { System.out.print(j+" "); } System.out.println(); } } }
代码解释
- 要绘制此模式,我们将使用两个嵌套的‘for’循环。一个将打印第一个金字塔,另一个将显示第二个金字塔。
- 声明int i,int j,和int row_0,并用您想要的行数初始化行。这里row的值是5。
- 设置第一个嵌套‘for’循环的外部‘for’循环,将i初始化为行数,并迭代直到i >=,然后递减迭代器。这个外部‘for’处理行。
- 在内部‘for’循环中,设置条件j=1并迭代直到j<=i。在内部循环的体中,显示j变量并加空格。
- 现在在第二个嵌套‘for’循环中,更改第一个嵌套‘for’循环的外部‘for’条件。将其初始化为2,并循环直到i<= rows。
- 内部循环迭代直到达到i。然后显示控制台上的消息,与第一个嵌套‘for’循环的内部循环相同。在内部‘for’循环体之外打印行空格。
列中重复的数字右对齐三角形模式程序
public class Number_pattern { public static void main(String args[]) { int i, j,number, n=7; for(i=0; i<n; i++) { number=1; for(j=0; j<=i; j++) { System.out.print(number+ " "); number++; } System.out.println(); } } }
代码解释
- 在示例代码中,声明int i,int j,int number,和int n。
- 然后将n初始化为您想要的行数,这里是7。
- 在外部‘for’循环中,从值0开始循环,直到达到n。
- 您可以在循环内部或外部初始化数字。
- 在内部‘for’循环中,迭代直到j小于或等于i。然后显示数字并加空格。
- 在内部‘for’循环体之外,打印行空格。
- 内部‘for’循环迭代直到其条件变为假。当该条件变为假时,外部循环再次递增并执行内部‘for’循环,直到条件变为假。
- 这个过程会一直重复,直到外部循环条件变为假。
Java中的字符模式程序
字符模式包含英文字母。我们可以在Java中制作炫酷而精彩的字符模式程序,下面讨论了其中一些。
字符半金字塔模式程序
public class Character_p{ public static void main(String[] args){ int alphabet = 65; for (int i = 0; i <= 5; i++){ for (int j = 0; j <= i; j++) { System.out.print((char) alphabet + " ");} alphabet++; System.out.println(); } } }
代码解释
- 声明字母并将其初始化为值65。
- 外部for循环从0开始,重复直到i为5或更小。
- 在for循环内部,循环从0开始,重复直到j小于或等于i。
- 然后打印字符和空格到输出屏幕。
- 为了打印字符,我们将字母从整数类型转换为字符类型。
- 在其体之外,递增字母并打印一行到输出屏幕。(char)将字母值转换为字符。
Java中的金字塔/三角形模式
public class CharacterPattern { public static void main(String[] args){ for (int i = 0; i <= 8; i++) { int alphabet_0 = 65; for (int j = 8; j > i; j--) { System.out.print(" "); } for (int k = 0; k <= i; k++) { System.out.print((char) (alphabet_0 + k) + " "); } System.out.println(); } } }
代码解释
- 在这个示例代码中,我们使用了三个‘for’循环,一个外部循环,两个嵌套在外部‘for’循环内部。
- 外部‘for’循环从0开始,循环直到值8或更小。
- 在外部‘for’循环的体中,我们将整型字母变量初始化为65,并在其体内嵌套另一个‘for’循环。
- 第一个内部‘for’循环是外部‘for’循环的逆序,在其体中,在控制台打印空格。在其体之外,还有一个‘for’循环。它像外部循环一样迭代。
- 在第二个内部循环的体中,通过对字母+k进行类型转换来打印字符,并将其与空格一起打印到控制台。在第二个内部‘for’循环体之外,打印一行。
摘要
- 在本Java教程中,您将学习Java,包括详细的模式编程,从模式编程到代码的实际实现。
- 文章讨论了三种模式编程类别:星形模式、数字模式和字符模式。
- 这三个类别之间的区别仅在于数据的类型不同;否则,相同的逻辑适用于所有三个类别。
- 从最基本的模式编程示例到高级示例,我们为您带来您应该了解的关于Java模式的一切。